Howdy all!
I’m animating a 900-quad sphere with a texture map over it (it’s “Earth”), and I’m trying to get the best performance possible.
I assumed that passing in the vertices/normals/texcoords each render pass would kill me with the JNI overhead, and that using a display list would improve performance. I was half right–
Display lists are faster for textures smaller than 512x512, and dramatically slower for larger textures. Here’s some data I collected on my x86_64 linux system with a GF 6600:
`
No sphere: 390 fps
… list no-list
GLU sphere (untextured): 370 165
My sphere (texture=128x128): 320 189
My sphere (texture=256x256): 260 180
My sphere (texture=512x512): 113 190
My sphere (texture=1024x1024): 40 184
My sphere (texture=2048x1024): 17.8 180
`
Note how performance drops precipitously as the texture size increases, but the no-list implementation performance is basically constant. I don’t understand this: why does this happen?
For comparison, I’ve plotted results for my scene without the sphere (consisting of a couple GLU-generated cylinders), and results substituting my hand-tesselated and textured sphere with a untextured GLU sphere of similar density.
I see something similar on an x86 linux system with a GF4MX420.