Instancing allows draw multiple instances of the
same mesh with a single draw call. Given a scene that contains many objects that
use the same geometry, you can draw many instances of that geometry at different
orientations, sizes, with dramatically better performance by reducing the amount
of data you need to supply to the renderer. This technique is useful for
rendering massive similar objects such as woods, vegetation.

In Awakening, moblie, skinmesh, and cloth supports
instancing; you can first select a mesh, and check it's 'Bump'
style, then do Edit > Copy , then use
Edit > Instanced Paste to create a
instancing mesh; you can clone the instancing mesh to generate massive objects.
Also, there is a 'cloneInstance()' function in script api for movable objects. The Select > Select Objects By Instance ID command can select all similar instancing meshs.

You need assign material with corresponding shader
to instancing mesh for correct instancing rendering. All
Shadow Mappingshaders are supports
instancing, and there are legacy instancing shaders can be found at the "effects\instancing"
folder. You need check 3d object's 'Bump'
style to use instancing shader.

For shader coding, there is a preset variable
' _bInstancing '
to indicates whether instancing rendering is
on ( instancing technique needs vs_3_0 device,
so the
' _bInstancing '
is false on graphics hardware that does
not support vs_3_0 ); and there is a console
variable 'r_instancing'
for turning on/off instancing.