Jogl? Or Java3d?  Which? When? Why?

Both seem to be current projects on java.net.

I realize I’ve posted this on the jogl forum and the responses are liable to be biased, but I’m asking people to put their personal biases aside for a moment here and try to give an honest and objective run-down on precisely why one should be used in preference to the other. In particular, which API would be more appropriate for end-user application projects which are anticipated to be around for a number of years to come? I’d ideally like to see an objective pro’s and con’s list for both, based on where the projects are currently and where the projects are liable to be heading (as well as when).

There are quite a few posts about this in the LWJGL forum, the JOGL forum, and one or two IIRC in the clueless newbies forum.

Short answer, JOGL is just a binding to Opengl which exposes all the OGL functionality. Very low level. Java3D/Xith 3D are scene graphs which provide a more structured approach to building your 3D scene without worrying about the technicalitys. Which you choose depends entirely on your needs. Check out the other posts for more details.

D.

PS Can a moderator do up a brief note regarding the differences between the different APIs and stickify it, crossposted to the 3 relevent forums ? this has been coming up a lot lately.

[quote]PS Can a moderator do up a brief note regarding the differences between the different APIs and stickify it, crossposted to the 3 relevent forums ? this has been coming up a lot lately.
[/quote]
http://javagamesfactory.org/views/view-library-category-features?category=3D%20Renderers

The lack of features claimed by each library is purely the fault of their respective authors - nag them (or msg me directly with features and a description of how / why library X supports them) and get it updated.

FYI:

LWJGL has full support for:

32-bit floating point numbers
Fallback to software renderer
Full-screen mode
GLU included
Hardware OpenGL
HW-acceleration of AWT
OpenGL 1.1
OpenGL 1.2
OpenGL 1.3
OpenGL 1.4
OpenGL 1.5
OpenGL 2.0
Vertical sync hooks

and partial support for

Java-style method names
C-style method names

(in that LWJGL is a mixture of what’s expedient for both)

and I don’t know anything about Cg.

Cas :slight_smile:

For the sake of completeness, JOGL supports

[]32-bit floating point numbers
[
]64-bit floating point numbers
[]C-style method names
[
]Cg support
[]Fallback to software renderer
[
]Full-screen mode
[]GLU included
[
]Hardware OpenGL
[]HW-acceleration of AWT
[
]HW-acceleration of Swing
[]OpenGL 1.1
[
]OpenGL 1.2
[]OpenGL 1.3
[
]OpenGL 1.4
[]OpenGL 1.5
[
]Vertical sync hooks

It will support OpenGL 2.0 in the next release build (the support is already in the CVS repository) and will implement the JSR-231 APIs once they are finalized. JOGL will also be the testbed for the development of these APIs.

There is also some cool stuff not on your list which JOGL will support in its next release but you’ll have to wait for the announcement. If you’d like a hint, go through the May CVS mailing list archives for JOGL.

Thanks, …

[quote]For the sake of completeness, JOGL supports
[/quote]
… and thanks.

If you’d like to alter the library’s description to reflect this (i.e. the page that you go to when you click on the text JOGL at the top of the column), or …

…if you want to add these when they come out, just create an account on JGF, and email me or PM me here on JGO with the account name, and I’ll add you with complete admin control over the features + descriptions + logos etc for JOGL.