I’ve used instancing in two other projects before (one in C++/DirectX and another in XNA) but for the first time it’s now available on Meteor Engine with deferred rendering. I already uploaded the latest build which has this feature in place.
With instancing enabled, it is now possible to make more complex scenes relatively easily and with much fewer draw calls. Now, I’ve apparently hit a new GPU bottleneck, in rendering too many polygons because I went crazy with adding a lot of instances 😮 Remember, that with deferred rendering you’re drawing the geometry more than once- up to a maximum of six times with CSM shadows enabled!
So other optimizations are coming up. With instancing in place, I will next re-introduce scene culling, using quadtrees. Each instance will be culled individually.
A few other things… bounding boxes didn’t show up correctly before. Now they appear along with every instance. Also, lazy loading of meshes is supported, so instead of using two lines of AddModel(“mModel”) and then Model(“myModel”).Translate(…).Rotate(…) simply call Model() to get the mesh that is needed.
You may also notice that my recent updates are getting shorter. Well I don’t want to digress too much to the point where the articles turn into tutorials, but more about being quick to the point. If there is enough support for this project I might release periodic builds much sooner online. These won’t be official releases, but revisions when I implement new features.