Keyframes and Tapestries
Keyframe Interpolation
The Charisma Engine's hardware accelerated keyframe interpolation is one feature no other video card offers. Hardware keyframe interpolation creates a fluid transition between a developer-defined starting mesh and ending mesh. The developer simply inputs a start mesh, say a frowning face, and an ending mesh, a grinning face, and the number of keyframes he wants the hardware to interpolate. Many games already use software keyframe interpolation, but ATI's hardware solution will be significantly faster.
In ATI's example picture, the developer only needs to define the original mesh, the destination mesh, and the number of frames to interpolate. The hardware then creates the middle keyframes. Sometimes the hardware interpolation might not be able to do a natural transition. In this case, the developer can simply insert a few guide frames to help the hardware interpolation create the desired effect. Want a smile to turn into a slow grin? Just specify more frames in the grinning phase.
Rugs?
The Pixel Tapestry architecture is the second half of ATI's next generation technology. Since the Charisma Engine should solve the developer's need for more detail (more triangles), and natural looking characters (vertex skinning). The Pixel Tapestry Architecture will be needed in order to create objects that "accurately reflect light and the surrounding environment, and cast dynamic shadows from all light sources." Pixel Tapestry will also help environments "exhibit realistic behavior for liquids, clouds and fog."
The first key feature of the Pixel Tapestry Architecture is the ability to apply three textures to a single pixel. Cards such as the Voodoo 3 can only do two textures per pixel. The GeForce doesn't feature multiple texture units for each pixel; it needs to use three pixel pipelines to create a single three-texture pixel.
Features that require three passes such as EMBM (Environment Mapped Bump Mapping), will be done in a single pass with ATI's ability to do three textures per pixel.
3D Textures
3D texture support is one of the more interesting Pixel Tapestry features. Normal textures are just 2D images wrapped onto a polygon. What if you could make a 3D texture? ATI uses a cube of marble as an example.
You can create a 3D texture to represent a cube of marble, and the entire 3D makeup of the cube including its network of veins will be in the texture. The textures will only appear where they intersect with polygons. If a polygon happens to slice our 3D marble texture in half, the polygon will appear as the newly exposed marble face. Let's say that the marble texture is applied to a wall. If a rocket happens to damage the wall, every single polygon that defines the hole in the wall will display the portion of the texture that intersects with them. Each facet will have a different appearance since they won't be using the same 2D marble texture.
There are a couple drawbacks. First, there are memory considerations. A 3D texture will take up an enormous amount of memory. As a result, most textures will most likely be 128 pixel cubes. Second, creating a 3D texture is far more difficult than making a 2D texture. That's why ATI predicts that preliminary 3D textures will be used to simulate fog.