The
Charisma Engine
The
Charisma engine is really the heart of the Rage6C core. It encompasses T&L,
Skeletal Animation, Vertex Skinning, and keyframe interpolation.
T&L
Transform
and Lighting has been the buzz word on the street every since nVidia introduced
it back with the GeForce 256 chip and ATI's Charisma engine handles the T&L duties
on the Radeon. Having a T&L engine on the video card enables game developers to
offload those duties from the CPU and use those resources in other areas. Boasting
a throughput of 30 Million triangles per second, onboard T&L also allows developers
to dramatically bump up the polygon count without hurting performance.
In
this day and age, polygon count is still the best way for improving 3D image quality.
Skeletal
Animation
In
order to accurately model the human body, one creates a skeleton and then wraps
textures around the structure, creating a 3D "body". This allows the
models to fairly accurately re-create human movement, but problems occurs when
two ridged structures are pivoted around a central point, a joint. When we move
joints, unsightly gaps are created between the textures, resulting in a very bad
looking model.
Skeletal
animation allows the Radeon core to identify and smooth out the unsightly gaps
created. A continuous skin is placed over the gap to create a smooth looking joint.
Just to clarify, it does not create any sort of curved surfaces, just a simple
4 point matrix.
Taking
the skeletal animation one step farther, we discover vertex skinning with matrices.
With this method the matrices influence how the given joints are allowed to move,
and how they move relative to each other. Even when using vertex skinning, there
is still distortion created at the joints when the joints are moved. To fix this
developers can opt to use a extra matrices who's sole purpose is to blend the
joint together in a realistic looking manner. Unfortunately for every vertex in
the matrix, additional calculations must be performed, and adding extra matrices
just multiplies the problem. The Radeon is capable of accelerating up to 4 matrices
in hardware, relieving the CPU of these duties and by doing so, freeing up more
CPU cycles and producing better looking models.
Here
we see a third matrix being used to smooth out the joint between the upper arm
and shoulder. A fourth can also be added for extra realism, and still be handled
in hardware.
Keyframe
Interpolation
Any
animation artists will be very familiar with this technique. Instead of defining
every single frame in an animation, one defines several keyframes from which the
CPU then calculates the missing frames of the animation. By offloading the duties
of calculating the missing frames to the video card, in terms of performance using
Keyframe Interpolation is free.
This
saves developers a lot of time and space. Since only keyframes need to be specified,
the animation does not have to be predefined frame by frame, and developers to
not have to spend the time creating the animation frame by frame.