I’ve been making quite a few changes to the core render state change operations on the SceneManager and RenderSystem classes. I’ve exploited the fact that I recently attached all the extra render settings (such as depth buffer params etc) to the Material class rather than being set any time, and I’m now only issuing commands to the underlying API (in this case D3D) if the settings are different.
Whilst this required some rather uncomfortable unpicking and rewriting of some core functions, the eventual result is that frame rates are up to 50% better than before, which is a big bonus. Add to that the fact that the render settings are easier to manage from a client application now they are all in one place on the Material, and it all adds up to a very worthwhile exercise, even if it doesn’t add another bullet point to the feature list!
Now back to skies…..