Ok I've been introduced to JoGL by a fellow javagaming member not that long ago, and I was definitely charmed by the fact that I can go down to the byte level unlike other APIs such as Java3D.
Anyways I started making ports to compare performance between the demos once written in Java and the original C++ code.
To my surprise the JoGL ports were slightly faster than the original C++ demo.
That's before I ran into some demos such as CellShading and HeightMap rendering:
Basically the frame rate was cut in HALF and sometimes even lower.
So I started taking off bits of code here and there to finally narrow the circle of suspicions to the "for" loops.
Indeed looping takes huge chunks of time everytime it's called in Java, to the point of EMBARASSMENT
Check the code in the JoGL forum and you'll definitely notice the rather poor performance of the said ports due to Java slow loops...
Also that depressing observation can be noticed in every demo that requires a lot of polygon drawing such as Quake 3 Loader and Animators.
In case of the loader, we're dealing with still Models so we can call a display list to avoid continuous looping but unfortuantely it is near impossible to use such approach when it comes to animation.
/me off to cry a bit :-/