I have a model that is 2000 tris. I need 50 of these identical objects to show up onscreen. I can easily create a new scene file with the 50 copies as individual objects within one .fbx file.
I'd like to know if it is better on rendering performance if the 50 were instances. I know it would be on memory (or should be!).
I downloaded the instancing sample and replaced the box with my own model and that worked fine except I'm getting 5fps on 360 because there are way too many instances of my object than I need by a long shot (like 10 million polys worth!).
Static objects are less efficient than instanced objects. Static has effect on the way the RenderManager is handling it. It will also affect shadowcasting (you may set lights to only draw shadows with static objects, or both static and dynamic objects)
The RenderManager will assume your Static objects don't move and is not similar to the instancing of objects (which will reduce drawcalls etc.)
Contributor on the SunBurn sgMotion Animation Library open source project.
Hi guys,
I think Tom really nailed the differences between regular objects and instanced objects (lower draw calls) - I just want to add a little about when it's best to use instancing.
While rendering instanced objects is very efficient, it's no more efficient than collapsing the same objects into a single large object in your modeling app. Managing instanced objects can be complicated, as it requires packing the transforms of several virtual / dummy objects (the instance locations) into a single transform array for the instance container.
So we usually recommend collapsing objects in your modeling app over instancing, unless the object locations are not known at design-time (for instance randomly placed trees or procedural levels).
Let me know if this helps!
Follow me on Twitter – development and personal tweetsAwesome XNA Videos – Lighting, Rendering, and game videos
Thanks for the help guys. I'm going to do some more tests of my scene tomorrow and see if performance improves.