Doing some optimization of the OpenGLContext scenegraph. Just using display-lists on the material objects takes the material rendering overhead from ~5% of runtime to <1% of runtime. There's a diminishing set of low-hanging optimizations available at this point. The wrapper object is obviously a major time-sink. I took a look at re-writing that in C and then realized that mucking about in C just isn't something I want to do. Yes, it's a trivial little extension object, but I don't want to spend my "relaxation" time on programming C. I get enough of that at client sites.
I think I can save around 8% more if I cache the typed children-sets for the traversal code. There's millions of isinstance calls due to the generic form of the traversal code. Just providing a cached set of traversal-types would be a huge win. Would probably also be worth it to cache the paths to special nodes (lights, backgrounds etceteras) with invalidation on "children".
Pingbacks are closed.