While I can’t obviously speak for other people, I can tell you some the reasons why I found the JOGL bindings a much more appealing prospect than using Java3D:
(1) Writing programs using JOGL in Java is very similar to writing programs with the ordinary OpenGL libraries in C/C++. This is good because it means you can take any tutorials and resources written about OpenGL and easily apply it to JOGL. The only real difference between JOGL and OpenGL is the initialisation, loading of extensions and how the library functions are called- you call all OpenGL functions through a ‘GL’ object in JOGL instead of calling them directly as with regular OpenGL. JOGL is just a set of bindings really around the ‘proper’ C OpenGL libraries.
(2) JOGL is very flexible and gives a lot of control over the rendering pipeline. I’ve never used Java3D personally but I’d imagine it wouldn’t be as powerful or as flexible as using just regular OpenGL or a binding like JOGL. Does Java3D support shaders for instance ?
(3) While I haven’t done any sort of comparisons or concrete tests betweent the two libraries myself, the general consensus on the internet seems to be that J3D is much slower than using the likes of JOGL or LWGL.
Thats about it I think.. Now to go get myself a hangover cure :)