Games Programming with Java and Java 3D
rotated boxes [Marner 2002]. He used the C++ and GL4Java bindings for OpenGL,
and v.1.3.0 beta 1 of Java 3D.
The C++ version was fastest, the GL4Java implementation a little slower, and Java
3D was about 2.5 times slower. This benchmark has been somewhat invalidated by
reports that the code slowdown was due to a performance bug in that version of Java
3D, and a poorly optimized scene graph
(http://www.rolemaker.dk/articles/evaljava/errata.htm). Unfortunately, the timings
have not been repeated with the latest version of Java 3D.
Marner's code shows other striking differences between Java 3D and OpenGL. The
C++ and GL4Java programs are of comparable sizes (about 10 classes; 30 pages of
code with documentation), while the Java 3D application is much smaller (5 classes
and 11 pages). Marner comments on the complexity of the OpenGL code which
required a kd-tree data structure, a culling algorithm around the view frustum, and