I changed something in the basest of base classes, so I’m waiting for the whole project to compile… probably another 5 minutes.
I recently added display list support to the graphics engine of Bridgeworks (http://dev.bridgeborn.com/BwSchools). Currently, Bridgeworks supports OpenGL 1.1 and Direct3D 8.1. OpenGL already had display lists built in, so that was easy. I wrote my own version of display lists for the Direct3D component. The frame rate improvements were well beyond my expectations. I knew there would be some improvement, but I didn’t realize to what extent. On our test scene, which has many duplicated objects and can benefit from display lists, enabling the display lists brought the frame rate from 2 fps to around 33 fps… amazing. This will have positive implications for any scene that utilizes static or duplicated objects, like graphs for instance.
I want to further optimize the D3D display list support, by removing Get* methods from the display lists, as these are not necessary for rendering once the initial display list record has been made.
I’m currently working on what I call a “Replicator” node for the SceneGraph library. Tim, the CEO of Bridgeborn, and my personal friend who endlessly harasses me with his dry wit (I love it), said it sounded like something Arnold Schwarzenegger (had to look up that spelling) would say. The replicators purpose is to replicate prototypes of a model so that the model doesn’t have to be stored in the scene graph multiple times… another optimization that I’m hoping will prove beneficial. We’ll see.
Well the compilation has just finished, so I have too.