Charisma and Pixel Tapestry
Charisma
ATI plans to fill the need for plentiful, highly detailed, lifelike characters and objects with the Charisma Engine. The Engine consists of a new set of features including advanced vertex skinning, hardware accelerated 3D keyframe interpolation, and a transformation, clipping, and lighting (TCL) accelerator. Yes, ATI's next generation part will have onboard T&L.
![GDC 2000 ATI [ The ATI Geometry Pipeline @ 559 x 426 ] > View Full-Size in another window.](images/pipeline-s.gif) The ATI Geometry Pipeline
|
|
![GDC 2000 ATI [ More Detail @ 604 x 466 ] > View Full-Size in another window.](images/gorilla-s.gif) More Detail
|
|
T&L
Like NVIDIA's GeForce, ATI's Charisma Engine will move more of the 3D geometry calculations onto the graphics chip. Non-T&L accelerated 3D cards only have the triangle setup and rendering engines. The Charisma and GeForce engines have the lighting, transformation, vertex skinning, perspective divide, and viewport transform steps in the geometry process. While the extent of support for all these steps vary for each card, all are present in some form.
Moving T&L onto the graphics card drastically increases the number of triangles available for 3D scenes and characters. Instead of being restricted to triangle counts in the hundreds, developers will soon be able to design characters with thousands of triangles. Simply put, having more triangles translates into more detail. Just take a look at the Gorillas in ATI's example picture.
Vertex Skinning
The Charisma and GeForce both feature vertex skinning, but the GeForce only has support for two matrices -the Charisma has support for four matrices. Here's the information from the white paper:
One weakness of skeletal animation is the way it handles joints between bones. Each bone is rigid, and its movement is defined by a transform. If the transforms cause the joint to bend, an unsightly gap can be created.
This weakness is overcome using a technique called skinning, which adjusts and blends the positions of the vertices around the joint to create a continuous, flexible skin.
In order to compute the location of each vertex in each frame of a skeletal animation, matrix transformations are required. A separate transformation matrix is required for each bone that influences a given vertex. The weightings of each matrix can vary for each vertex, which is important for vertices located near the joints between bones. In order to make joints that flex naturally, the matrix weightings for each vertex around a joint must blend gradually from one bone to another. The matrix transformations required for vertex skinning are very computationally intensive, and the complexity increases with each additional matrix used.
![GDC 2000 ATI [ Vertex Skinning @ 480 x 237 ] > View Full-Size in another window.](images/vertexskin-s.gif) Vertex Skinning
|
As you can see from the ATI example pictures (maybe slightly exaggerated), the 2-matrix vertex skinning only accounts for two "bones" and it appears unnatural while the 3-matrix picture has a smooth transition.