Instancing on the GPU

Greetings,

My game will need tons of objects on screen which led me to seek GPU instancing/envelop.
So to benchmark Unity I did a test with 100s of characters walking, emulating something I saw on Ogre or Irrlicht.

The performance hit was far more and turning on Stats showed me these Unity Instances of the same character were separate calls.

I also noticed terrain with thousands of threes don’t increase the number of call that much - which makes me think that terrain uses a form of shader based instancing at the GPU level and instancing do not.

Is there a way to either turn on or implement GPU instancing for Unity instances?

Terrain does not use actual instancing, what it does is: renders closeby trees one-by-one, and renders trees that are further away as batched billboards. You could try doing something like that; how hard would that be depends on your particular situation.

Hardware instancing does not exist in OpenGL, and on D3D9 it’s only supported by shader model 3 cards. And when you throw in pixel lights and/or shadows, then instancing becomes really really hard to do in general case, even with hardware support.

Clear, technical demos don’t show real world situations…
Can unity implement a best case scenario with proper fallbacks ?

Right now, instancing is not supported. Maybe someday it will be.