I’m interested in OpenGL with Java… but I do not really know where to start. Afaik there are (at least) gl4java and java3d, which one is more recommendable? Am I right that java3d is the “official” OpenGL implementation?

Can one of them (or both) be used for normal applications, not only for applets?


Hi !

gl4java is the best way to get OpenGL into Java, SGI and Sun are working on an official OpenGL API for Java but that will take at least a year or so I guess.

Java3D is NOT OpenGL, this is a high level API for 3D graphics (read “games”) it works with both OpenGL and Direct3D, it works at a much higher level with a scene graph, has code to load some file formats and lots of other stuff.

gl4java is great and that is what I would recommend if you want to use OpenGL with Java.


GL4Java is very old now, and no longer updated. The modern replacements are LWJGL (hosted on sourceforge) which is a OpenGL + OpenAL + input set of bindings, or the more recent Jogl ( Jogl is an official set of GL bindings that was recently released and is still being activly developed.

Actually, GL4Java is getting a little stale now - it hasn’t been updated since December 2001 and doesn’t cover the OpenGL 1.4 spec.

The aforementioned OpenGL binding developed by Sun and SGI will take a while, but there are two other bindings of interest for you these days, both Open Source and both very good:
LWJGL (Lightweight Java Gaming Library) is a cut-down, fast as possible binding that attempts no integration with the AWT. It consists of bindings to OpenGL and OpenAL, and an input layer. It is designed for full-screen game development. Win32 and Linux already, MacOSX soon.
JoGL (Java Binding for OpenGL) is the result of Sun’s JSR-134. When 134 finally collapsed, the technology it spawned was released. It includes full integration with the AWT and is designed for general OpenGL applications. Win32, Solaris, Linux and MacOSX.

Both bindings are in constant development, both have active communities. LWJGL has a 6-month lead on JoGL so is more complete. You can find a lot more information about both at the Java Gaming forums at:

[This message has been edited by cfmdobbie (edited 08-15-2003).]


As it will simply have to display one 3d object on the center of the screen, with the user being able to rotate it and zoom in and out, I guess gl4java will do… but I will have a look at the others, too.