Anyhoo... Never used the other one, but I'm a huge fan of JOGL. Simple, makes sense, and looks good.
Originally posted by Barry Andrews:
I have a more basic question than this. How do you know when to use an OpenGL implementation or a higher level API such as Java 2D or 3D? Does it depend on how much control you need to have over the images? What else does it depend on? I have seen some pretty cool looking games that were built with 2D and 3D.
Java 2D only uses the Opengl pipeline with version 1.5+. Java3D used Opengl or directx depending on the implementation you chose. Java3D was put on the back burner because of JOGL development. Developers who use Opengl typically don't want a higher level API. Java3D didn't allow you any access to OpenGL calls directly. So you were at the mercy of Sun's implementation.
2D vs 3D is just that. Do you want to create a 2D game or a 3D game? However, you can still create 2D games using Opengl. And this is what I prefer to do.
I have seen some pretty cool looking games that were built with 2D and 3D
What games? And what do you mean by saying "built with 2D and 3D"? 2D and 3D what?
The real question is not do you do 2D or 3D but rather what do you use for either? And there is really only 3 choices. DirectX, SDL, or Opengl.
All 3 API's will do 2D and 3D. But DirectX and SDL provide a lot of wrappers and special libraries for things like loading images/textures, sound, etc.
I'll stand behind this statement though. If you want the most power and flexability, using Opengl is the way to go. Funny, now that brings us right back to my question. Which Java GL Wrapper do you prefer and why?
Originally posted by Joseph George:
If I understand Barry's question, he's wondering when you should opt for the Java3D API over any of the OpenGL wrappers. I've used both Java3D and JOGL (an openGL binding), and I'd have to call JOGL better in just about every respect. Java3D does things in a very convoluted way that just doesn't seem necessary to me. JOGL seems far simpler, and as far as I can tell, it's faster too, but that could be nonsense. Anywhoo, I'd be hardpressed to think of a situation in which I'd prefer Java3D.
Java3D is a SceneGraph implementation of a 3D environment. It builds everything as nodes on a tree in order to view them in the world. The SceneGraph idea is a good idea. Sun's implenentation of it sucked. JOGL is nothing like Java3D. You can't really compare them because they are 2 different animals even though the end result might be the same.
Java3D didn't allow you any access to opengl calls. With JOGL everything is Opengl calls. Java3D was a lot more like DirectX and JOLG is simply Opengl using the Java language.
In fact, if you were going to use Java3D you might as well use Directx because
a. DirectX is better than Java3D
b. Java3D only ran on Windows (and solaris, but who cares about that one for gaming, and don't even mention Linux Blackdown).
[ August 02, 2004: Message edited by: Gregg Bolinger ]
My question to you JOGL guys... is the project open to code contributions? Does it have Octree or B-tree algorithms?
I might get back into OpenGL development if I can find a good Java graphics library I can hook into. I don't have time these days to go back to Delphi or C++ very often.