Advanced skin rendering
With the upcoming Intel’s Larrabee, we are heading to a fully programmable rendering pipeline. The following image shows the graphics pipeline evolution:
It seems the old days of graphics programming gurus (where you have to code everything like the polyfiller) are back…
The Phoronix Test Suite is the most comprehensive testing and benchmarking platform available for Linux. Phoronix Test Suite is always looking for new and more demanding OpenGL benchmarks and 2 new benchmarks have been added to the Test Suite: Lightsmark (OpenGL lighting benchmark – built around the Lightsprint SDK) and Unigine (real-time engine that focuses upon photorealistic 3D capabilities for both gaming and virtual reality systems).
Read the complete news here: OpenGL Benchmarking On Linux.
This news allows me to start a new category at Geeks3D: Linux.
Jay Dolan recently blogged about some of the performance optimizations he made to his Quake2-based engine, Quake2World. He provides links to various points in the source code to give context around some of the topics he discusses.
Read the post HERE.
Quake2 was released in 1997. Hardware acceleration was only available on higher-end PC’s, and things like multitexture and vertex arrays which are commonplace today didn’t even exist then. So naturally, Quake2’s rendering techniques appear very dated in 2008. Multitexture was made a part of the OpenGL specification in version 1.2.1, and is available on most 2nd generation hardware (TNT or newer). I strongly recommend cleaning up the renderer and removing any non-multitexture rendering paths.
Texture binds (glBindTexture) are rather expensive too, and so to minimize these per frame, you should group the world surfaces by texture before iterating over them. Note that a simple grouping operation is significantly cheaper than a qsort — overall order is not important, we just want to minimize texture changes.