Game Development Reference
In-Depth Information
How bone deformation systems work
If you are aware of CGI developments over the last 10 years, then you will
know that bone deformation systems have been a key feature of the
leading 3D animation packages. The real-time industry has until very
recently looked on in awe as these rendering-based packages provided
more and more sophisticated tools for single mesh deformation. What we
want for our render engine is something that allows us to deform certain
vertices in a mesh using a control object. In other words, something rather
like the way a modeller application lets us select a bunch of points from a
mesh and deform just that set of points. Bones are one way of doing just
that. First, you create a single mesh that you wish to deform, and then you
add some kind of skeleton to this mesh. Some software requires you to
assign certain vertices in the mesh to each bone in the skeleton. Other
software uses the location of the bone and its strength to influence how
each vertex in a mesh is deformed by each bone.
The problems behind bone deformation
All calculations that your engine performs take some processor time. The
ideal deformation system only considers each vertex once. In a bone
deformation system that uses weights, a single bone has a zone of
influence that has a blurred edge. In a central area vertices are very
influenced by this bone, in the outer area the influence falls off until it has
no influence at all. This type of system is great for rendering software
because it allows the animator maximum control over the way a single
mesh is deformed. Admittedly, this comes at the price of some major set-
up headaches! In a real-time engine this method is not great because it
can and often does result in an engine that has to consider every point in
a mesh for every bone. A fairly simple but common hierarchy for a biped
is as follows:
Left Shoulder
Left Bicep
Left Forearm
Left Wrist
Left Hand
Search Nedrilad ::

Custom Search