Another important performance impact to consider is weight quantization. The precision of joint influence may also impact runtime
performance. Generally speaking, there is a performance cost versus skinning quality trade-off depending on the level of precision
for skinning weight values. For example, skin weight values that are
rounded off to 0.1 will generally perform faster than 0.01, although
the skinning visual quality may suffer depending on the proximity
of the camera view to the character.
The number of joint influences, and weight quantization arent hard
rules, rather a general practice that affects overall runtime performance. Balancing these values against run-time performance is a
key factor in achieving a higher degree of quality. When building assets for games, there are often optimizations in the export
pipeline that automatically applies and renormalizes joint influences and weight quantization limitations into the skinning information. Its important for a rigger working on games to be aware of
these pipeline optimizations, so they may tune their rigging work in
a WYSIWYG workflow. Without an understanding and awareness
of these limitations and pipeline optimizations, there often results in
misunderstandings as to why the desired results arent as expected.
The second general concept to understand is the memory limitations
imposed by hardware targets. Each variation of game hardware has
different amounts of finite memory available for a wide variety of
different assets and features within a game. Each and every art asset, whether it be geometry, texture map, joint or animated channel
uses some of that finite memory, not to mention all the memory
overhead of the various game systems.
There are a variety of compression technologies that may be applied to reduce the memory footprint of texture maps, and animation channels. Ultimately, while compression allows for more art
assets to be running in a game, it comes with a visual degradation
cost. A careful balance is required to maintain visual quality while
working within the memory budgets allowed. This memory limitation directly applies to rigging in the cost of animation channel
data. Simply stated, increasing the number of animated joints, and
animations being played back on those joints, the more animation
memory budget required.
With these real-time rendering limitations in mind, well next examine the interactive nature of games as it pertains to character rigging.