Java3D or OpenGL


I’m doing some information visualization in 2D with Java and a 3rd party library. The next step would be to do information visualization in 3D, and I thought to use Java3D because of currently using Java.

It seems that OpenGL is also suitable for information visualization in 3D.

So I have to make a decision what to use: Java3D or OpenGL.

What’s the difference?


OpenGL lets you make lower level immediate mode graphics call that map directly to the hardware implementation, you set state and draw a bunch of polygons etc. etc.

Java3D is a scene graph architecture that lets you describe a scene with everything in it then hit draw, but it imposes that structure on everyone who uses it. It’s a different style of 3D programming. Java3D is easier for those with less experience to write a decent application I think because it will do some things right like draw your data with reasonable efficiency through culling, and encapsulates some tricky transformation concepts in objects like “Camera”.

Ultimately though Java3D probably lacks the flexibility and “power” and in some instances the simplicity of OpenGL.

It’s really up to you to make the judgement call.

This may interest you: