yannischris
Just dropped in
Offline
Posts: 8
|
 |
« on: 02. January 2012, 10:57:40 pm » |
|
Hi all, I am currently a CS PhD student and my research is on knowledge engineering and particularly on modelling film direction knowledge.
For the purpose of conducting some experiments, I have been searching the web to find a high-level, open-source 3D engine/API, preferably for Java but any other suggestion would be useful, with fair documentation/tutorials and an active community, that will enable me to easily generate some basic "film scene" examples programmatically, without having to go in the deeps of 3D programming. And this has to be done through code, rather than in some 3D platform like 3DMax or Blender.
For example I may need to generate a room, then place some objects (e.g. furniture, everyday-objects) and some human characters in it, and then create basic animations for the characters (e.g walk, sit on a chair or lie on a bed, bend, make simple gestures such as wave, point, hug or grab an object, etc). I will also need to move the characters around, so I need to be able to create motion paths (straight or curved) for translating the characters and the camera in space.
I have spent a lot of time checking out a large number of 3d/game engines and the truth is I have got quite confused... I don’t have any experience in 3D programming and for that reason I need the API to be as high-level and easy-to-understand as possible. Note that I don’t care about audio, networking or high rendering quality. Also I don’t want this to be interactive at all (as opposed to games). I just need to generate a rendered clip through code, according to a number of specific directives.
I came across Xith3D and it sounds really promising! But I am wondering whether Xith3D would be the optimal solution for what I need to do. What are Xith3D's advantages in comparison with other java 3d engines like e.g. JME or Env3D? Is it high-level enough to easily tackle this task? Or maybe it would be overkill? And, in that case, should I be looking for a simpler, higher-level 3D/Game Engine? Any specific suggestions?
I will very much appreciate any help/tip/hint!
|
|
|
|
|
Logged
|
-- yannis
|
|
|
Marvin Fröhlich
Xith Lord
Administrator
Guru
   
Offline
Posts: 4381
May the 4th, be with you...
|
 |
« Reply #1 on: 03. January 2012, 12:42:44 pm » |
|
Hi Yannis,
well, this question is not easy to answer. I would say, yes, it is pretty high level. But it also allows for low level access and is generally meant for programmers with a fair amount of experience. So maybe it is not as high level as you'd need it to be. It certainly matches all the features and properties, that you need. But I am not sure, if you really need a programming library rather than a scripting engine.
What Xith3D always really set apart of other engines, was the simple and intuitive API. Though I have to say, that I don't know the new JME3 and that other engine Env3D. So I can't compare.
|
|
|
|
|
Logged
|
|
|
|
yannischris
Just dropped in
Offline
Posts: 8
|
 |
« Reply #2 on: 04. January 2012, 08:54:07 am » |
|
Hello Marvin, You said that someone needs to have some experience. But you meant in general programming or specifically in 3d programming. I am a professional developer myself, I just don't have any prior experience with 3d/game development. Will that be a problem you think?How long will I need before I start using the API? And regarding the scripting engine, is it possible to integrate a scripting engine with e.g. a java application, so that I can generate the scripts through code? Any specific suggestions for scripting engine? Last question: Does Xith support the collada model format (which is very rich in free content on the web) for model import? Do you know of another format with similar volume of free-to-use content on the web?
Thanks for helping,
|
|
|
|
|
Logged
|
-- yannis
|
|
|
Marvin Fröhlich
Xith Lord
Administrator
Guru
   
Offline
Posts: 4381
May the 4th, be with you...
|
 |
« Reply #3 on: 04. January 2012, 12:12:58 pm » |
|
You said that someone needs to have some experience. But you meant in general programming or specifically in 3d programming. I am a professional developer myself, I just don't have any prior experience with 3d/game development. Will that be a problem you think?
Sorry, I got you wrong then. No, that won't be a problem. In this case I would not suggest a scripting engine for you, but precisely something like Xith3D  . How long will I need before I start using the API?
Impossible to answer. One person needs more time, the other one less... And regarding the scripting engine, is it possible to integrate a scripting engine with e.g. a java application, so that I can generate the scripts through code? Any specific suggestions for scripting engine?
Yes, this is possible. There are several Java scripting languages. Though I would have recommended something like blender, if you weren't a programmer. And I don't think, this is integratable or controllable through java code. Anyway, since you actually are a programmer, forget about that scripting thing  . Last question: Does Xith support the collada model format (which is very rich in free content on the web) for model import?
Yes, it supports Collada. Though I cannot really tell you, how far that support goes, since the loader was in development lastly. Just try it. Do you know of another format with similar volume of free-to-use content on the web?
The Quake2 MD2 format is also very commonly used and has full support in Xith3D.
|
|
|
|
|
Logged
|
|
|
|
yannischris
Just dropped in
Offline
Posts: 8
|
 |
« Reply #4 on: 05. January 2012, 04:27:12 pm » |
|
Marvin, thanks for the very useful info! Two last questions (I know that I said that before :-) and enough with the question bombing: - Does Xith3D allow one to create motion path and translate a 3d model along that path? - Does Xith3D allow one to define the position/orientation for a 3d model, frame by frame, by inputting pre-calculated position/rotation values for each frame?
|
|
|
|
|
Logged
|
-- yannis
|
|
|
Marvin Fröhlich
Xith Lord
Administrator
Guru
   
Offline
Posts: 4381
May the 4th, be with you...
|
 |
« Reply #5 on: 05. January 2012, 10:45:10 pm » |
|
I have to admit, that I cannot answer these two questions, since the collada loader is not my baby as well as the cal3d loader. And these formats are the most feature rich ones. So if any loader/model format supports this, these would be it.
|
|
|
|
|
Logged
|
|
|
|
yannischris
Just dropped in
Offline
Posts: 8
|
 |
« Reply #6 on: 06. January 2012, 10:16:46 am » |
|
I thought that these questions had nothing to do with model loading; I was just referring to the capabilities of the engine; So, regardless model loading, I just need to know whether the engine has these two functionalities (that can be applied e.g. on a primitive 3d cube of any format)?
|
|
|
|
|
Logged
|
-- yannis
|
|
|
Marvin Fröhlich
Xith Lord
Administrator
Guru
   
Offline
Posts: 4381
May the 4th, be with you...
|
 |
« Reply #7 on: 06. January 2012, 11:05:56 am » |
|
Well, then, yes, of course. You can do anything you want to a primitive objcet. I just thought, you wanted to know, if the Xith3D model system supports that and if the model functionalities interoperate with these manual changes.
|
|
|
|
|
Logged
|
|
|
|
yannischris
Just dropped in
Offline
Posts: 8
|
 |
« Reply #8 on: 06. January 2012, 11:20:12 am » |
|
Yes, you are right that this is the terminal objective (and not just animating a cube ;-) but I thought that since a model is imported and attached in the scene graph as a node, then its position and rotation could be modified just as with a cube.. This also brings me to my last question (hopefully :-): Does Xith3D allow loading of animations together with the loading of a model? And, if yes, in what formats is this possible? And, does it allow for simultaneous animations of a model (e.g. translating in space, walking cycle, and waving hand at the same time)?
|
|
|
|
|
Logged
|
-- yannis
|
|
|
Marvin Fröhlich
Xith Lord
Administrator
Guru
   
Offline
Posts: 4381
May the 4th, be with you...
|
 |
« Reply #9 on: 07. January 2012, 12:20:38 pm » |
|
Yes, you are right that this is the terminal objective (and not just animating a cube ;-) but I thought that since a model is imported and attached in the scene graph as a node, then its position and rotation could be modified just as with a cube..
You can always put any Node (includong Models) into TransformGroup Nodes and transform them in any way you want. This Does Xith3D allow loading of animations together with the loading of a model? And, if yes, in what formats is this possible? And, does it allow for simultaneous animations of a model (e.g. translating in space, walking cycle, and waving hand at the same time)?
The simple answer is: yes. But it depends on the specific model format. Please read XIN. There is a table with model formats and features in it.
|
|
|
|
|
Logged
|
|
|
|
yannischris
Just dropped in
Offline
Posts: 8
|
 |
« Reply #10 on: 08. January 2012, 07:58:11 pm » |
|
OK, thanks for the very useful advice! I will definitely give it a try, and send you feedback :-)
|
|
|
|
|
Logged
|
-- yannis
|
|
|
yannischris
Just dropped in
Offline
Posts: 8
|
 |
« Reply #11 on: 11. January 2012, 01:36:02 pm » |
|
Hello again, There is one vital question that I forgot to ask about: Does the engine enable me to code in advance transformations of a 3D object for specific time intervals, or start/stop animations for specific time intervals, in order to generate a rendered clip through code? For example, let's say I want to generate (through code) a rendered clip of 20 secs, in which a character model is static for the first 10 seconds, then translates from a point to another for five seconds (which means that the walking cycle should also be enabled for that five seconds) and then stops and turns his head to the left while waving for another 5 seconds). What I need to do do is to be able to code these actions in advance, so as to generate the rendered video programmatically. Is that possible?
Thanks,
|
|
|
|
|
Logged
|
-- yannis
|
|
|
Marvin Fröhlich
Xith Lord
Administrator
Guru
   
Offline
Posts: 4381
May the 4th, be with you...
|
 |
« Reply #12 on: 11. January 2012, 03:33:12 pm » |
|
Well, there is no class, that does the whole job for you. But you're absolutely free to do that through custom coding.
The classes from org.xith3d.schedops.movement and org.xith3d.utility.interpolate may help you with this as well as of course the Updatable interface, which you should use to control the whole process from within the render thread.
|
|
|
|
|
Logged
|
|
|
|
yannischris
Just dropped in
Offline
Posts: 8
|
 |
« Reply #13 on: 11. January 2012, 03:36:51 pm » |
|
Ok, that's good! I just wanted to make sure that the engine supports such functionality, one way or another :-)
Thanks again for the useful tips!
|
|
|
|
|
Logged
|
-- yannis
|
|
|
|