Skinning Rigid Props for Instancing

Golaem will automatically instanciate (i.e. store only once in memory and then duplicate on the fly when needed, hence saving memory) all meshes which are skinned to only one joint (aka rigid meshes). It may tremendously reduce the amount of used memory when rendering, therefore have a big influence on render times ( See Large Crowd Simulations Best Practices)

When dealing with rigid props (helmets, swords,...) or doing very aggressive LOD, it is important to check that the character is skinned correctly so that the Automatic Instancing will be triggered.

Rigid mesh instances are detected by either binding a skin cluster with only one bone, or by parenting the mesh directly to a bone.

Indeed, for the time being, Rigid Binding is not supported by the GCG format. So you if want to benefit from both GCG optimizations and instancing, when it makes sense to do so you should smooth bind your props with only one bone influence instead of rigid binding them.

For example in the below soldier, instead of being influenced by all fingers or multiple bones of the hand, the sword is influenced only by one bone called Weapon_R. It will then be automatically instanciated (and anyway it makes it easier to control).

Note that it is not enough that only one bone has a non-zero weight, what is taken into account is the number of bones influencing a mesh (even if other weights is 0). For example, here only the head has a non-zero weight, as shown by clicking on the "Show influences on selected vertex" button. You can see it even more clearly by using this very useful tool which is SkinWrangler (video tutorial here)

However, because several other bones are in the influences list, auto-instancing will not be activated, which is a shame...

To clean influences, select the mesh and the skeleton root bone and then go into the Maya Menu / Skin / Remove unused influences. With this new setup, auto-instancing will be triggered.

Another case where instancing proves to be useful is by instancing several identical meshes inside the asset itself. Think about a tree with thousands of leaves. Instead of storing all the leaves vertices, one reference mesh is stored and only the leaves transform will be stored several times. In order to make use of this propery, you will need Golaem version greater or equal to 7.1.1. If you can check that the source mesh is identical for several of your dag nodes, it should be detected at the GCG export time, and factorized. This is a gain is asset space, in cache previz, and in rendering time afterward.