I have a friend who is working on a project using OpenGL. He ran an experiment on the same card I am using. He drew 40 houses. 40 * 1600 polygons came out to 64,000 polygons and I got around 110 FPS. That came out to right around 7 million textured polygons per second. I was amazed by that performance, so I ran some tests Tests performed on a Geforce II GTS in Java3d. All with 1 shape, 216 boxes with 6 sides in 1296 geometry arrays. quads, 2 tex units : 39 fps quads, 1 tex unit : 219 fps triangles, 2 texture units : 39 fps triangles, 1 texture unit : 284 fps tristrips, 2 texture units : 39 fps tristrips, 1 texture unit : 248 fps (note: textures in both units are mipmapped. Changing the second unit from MULTI_LEVEL_LINEAR to BASE_LEVEL_LINEAR did not improve performance. Changing the perspective correction from NICEST to FASTEST also has no fps improvement) Now I did it with 2 shapes, one of the box sides was a different shape and appearance All with 2 shapes, 216 boxes with 6 sides in 1296 geometry arrays. One shape had 1080 geometry arrays, one shape had 216 geometry arrays. quads, 2 tex units : 24 fps quads, 1 tex unit : 200 fps triangles, 2 texture units : 24 fps triangles, 1 texture unit : 280 fps tristrips, 2 texture units : 24 fps tristrips, 1 texture unit : 248 fps As a final experiment I wrote a TriangleArray masher which took all the seperate geometry arrays in a single shape and put them all in one triangle array.... And get this.. the fps jumped to 180 with multi texturing, but had NO impact when only using one texture unit! I also changed 2 faces to use entirely different multi-textured shapes and the fps dropped to 170. I don't have the numbers to prove it, but I suspect that the overhead of multi-texturing is much higher than it should be, and it is felt everytime there is a geometry array sent to the card. So adding more and different shapes with corresponding multi-textures would result in performance degragation far outstripping the cards own performance hit. This performance hit was just made worse when I sent so many multi-textured geometry arrays to the card, even in one shape. Conclusion.. there is a performance bug when you are multi-texturing in the state change from one geometry array to another. (my guess is they are rebinding the second texture unit on each geometry array, regardless if it doesn't change) As a final test, I increased the number of boxes to 1000, which is 1000*6*2 textured triangles (12k). That was rendered in 180 fps, which is 2.16 million triangles per second. I am not unhappy with that performance, although I would think it would be higher. I am not ruling out that my per-frame code is causing the difference. As a final thought... The old fashioned method of multi-tetxuring required a 2nd pass. This caused about a 50 percent drop in framerates. The result above show that multi-tetxuring is rendering at 64 percent of a single texture unit. I think it should be around 80 percent. Dave Yazel Cosm Development Team http://www.cosm-game.com =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA3D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".
