🔒 Locked
[java] Why use Java3D?
Advertisement
Original Post
I'm doing my final yr project at the moment based on "Building an application capable of simulating bipedal locomotion in 3D".. For my project i've been assigned the use of Java3D by my supervisor as he has experience with it and so would be able to help me along the way with coding and technical aspects of the project.. The thing is, in my project i have to justify why i'm using Java3D over other 3D API's and i can't really put something like "because my supervisor told me to" down in my documentation as it would just look unprofessional.. So the bottom line is this: "What are the reasons people tend to use Java3D over other 3D graphics API's?" or "What are the advantages of using Java3D over the alternatives?"
Maybe people use it because it is easy to use, supports OpenGL and DirectX, is supported by sun and some kind of standard api extension. For general 3D stuff it is fast enough, for games you wouldn't use java right know, but who knows...
The question is, why you want to code in java, and not C++ ?
The question is, why you want to code in java, and not C++ ?
Me personally?
Well in uni they didn't teach us C++ only java so i had to learn C++ myself.. But as far as my uni is concerned, Java is my main language (yeah right)..
I'm using Java for my project because as far as i'm aware of Java3D isn't compatible with C++ (i could be wrong) and if u wanna kno why i'm using Java3D then read my first post above..
NEways, lets not get destracted..
the main questions concerning this thread topic r detailed above..
Well in uni they didn't teach us C++ only java so i had to learn C++ myself.. But as far as my uni is concerned, Java is my main language (yeah right)..
I'm using Java for my project because as far as i'm aware of Java3D isn't compatible with C++ (i could be wrong) and if u wanna kno why i'm using Java3D then read my first post above..
NEways, lets not get destracted..
the main questions concerning this thread topic r detailed above..
The truth? Practically no-one does use Java3D, because it's crap, especially for games. The main exception is sci-vis, and the main reason for that? It supports (loose usage of that word) high-end systems (CAVE's, stereoscopic stuff, etc etc) and jumps through hoops to interface to a wide variety of stuff. I've heard a lot of horror stories about how buggy and poor it is even at that (Java3D never really made it as far as a "gold" release. Even since it was resurrected the first major new release was massively buggy and had a nasty tendenct to reboot PC's).
But...you might want to say "because it's semi open-source, and there is an almost compile-compatible open-source version which is up to 3 times faster and totally not owned (damaged) by Sun and used by games developers" (Xith3D).
Or...you might want to say "because it has a pretty damned good scenegraph API" (just a pity it was so poorly implemented: very slow, buggy, and badly interfaced to the rendering API (both OGL and D3D)).
For reference, you could (should?) compare it to some of the other 3D engines. This list:
http://javagamesfactory.com/tech.html
is games-developer focussed, and gives you several to compare and contrast.
You certainly ought to find plenty of good / bad points to compare there (and it's a lot less biased and bitter than me :P)
But...you might want to say "because it's semi open-source, and there is an almost compile-compatible open-source version which is up to 3 times faster and totally not owned (damaged) by Sun and used by games developers" (Xith3D).
Or...you might want to say "because it has a pretty damned good scenegraph API" (just a pity it was so poorly implemented: very slow, buggy, and badly interfaced to the rendering API (both OGL and D3D)).
For reference, you could (should?) compare it to some of the other 3D engines. This list:
http://javagamesfactory.com/tech.html
is games-developer focussed, and gives you several to compare and contrast.
You certainly ought to find plenty of good / bad points to compare there (and it's a lot less biased and bitter than me :P)
Quote:
Original post by ArchangelMorph
I'm using Java for my project because as far as i'm aware of Java3D isn't compatible with C++ (i could be wrong) and if u wanna kno why i'm using Java3D then read my first post above..
In that case, why the heck aren't you using OpenGL? (language-neutral renderer, used in almost all sci-vis and most games)
Quote:
Original post by nmi
for games you wouldn't use java right know, but who knows...
The question is, why you want to code in java, and not C++ ?
Read the thread about "will java ever be fast enough for games". Then (please) stop trolling in this forum. Say that in a non-java forum and it's an opinion; say it in a java-specific forum and it's asking for trouble.
There is an alternate approach, Xith3d, which is based on jOGL. As I understand it, the jOGL is the only dirty portion of Xith, so once jOGL gets incorporated into Java, Xith will be "clean" java. Xith is very similar to Java3d (so its easy to replace one with the other) but where Java3d was designed for stability, consistency, and compatability over speed (much like Swing) Xith was designed for gaming, including maintaining direct open bindings to the underlying ogl interface.
But my memory is fuzzy, so the details could be wrong.
But my memory is fuzzy, so the details could be wrong.
Quote:
Original post by ArchangelMorph
Me personally?
Well in uni they didn't teach us C++ only java so i had to learn C++ myself.. But as far as my uni is concerned, Java is my main language (yeah right)..
I'm sorry to hear this. C++ is such a nice language if you got used to it. (Well Java is too, at least after they included generics in 5.0)
Quote:
I'm using Java for my project because as far as i'm aware of Java3D isn't compatible with C++ (i could be wrong) and if u wanna kno why i'm using Java3D then read my first post above..
Java3D is Java only
But if you use C++, you have a great variety of free 3D engines, that are faster and don't have all the problems Java3D has.
Thats why is asked: "The question is, why you want to code in java, and not C++ ?"
Quote:
Original post by nmi Quote:
Original post by ArchangelMorph
Me personally?
Well in uni they didn't teach us C++ only java so i had to learn C++ myself.. But as far as my uni is concerned, Java is my main language (yeah right)..
I'm sorry to hear this. C++ is such a nice language if you got used to it. (Well Java is too, at least after they included generics in 5.0)
I agree, C++ is definately my language of choice for games programming.. but please understand,
For my project i'm not building a game as such.. more of an application that can be used to simulate human motion in 3D..
Think: 3D studiomax, stripped RIGHT DOWN so the only functionality it consists of is as follows:
- The ability to view and manipulate a 3D scene
- The ability to represent a model human out of 3D geometry
- The ability to animate the model according to a specified input of either raw data for the movement of all the joints (for each frame of animation), or from applied equations specifying a persons 'gait'
- The ability to represent this animation on screen and allow for manipulation of the scene to view the animation from any angle
- etc etc..
If i was creating a game i wouldn't hesititate to use C++ and D3D regardless of my supervisors advice, but i'm not so i would apreciate us keeping the topic of this post to "disscussing Java3D's usefulness in general" rather than "why people don't use other API's for games"..
Thanks.. :o)
Quote:
Original post by misterX
productivity!!!
I had to make a simple FPS in Java 3D retained mode and I hated it. I don't know if immediate mode would have been any better. I'm almost certain that if I could have used C++ and Direct3D for the same project, I would have had a faster, better-looking and overall more robust program ready in less time. The only use for Java3D that I can see is toy programs where you have some cute, simple shapes that you can drag around.
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.
Sign in to reply to this topic.
Advertisement