Modern graphics hardware and its support of character animation

Note: This page is a little bit out-dated. It reflects state-of-the-art in the end of year 2002.


NVIDIA graphics processors GeForce3 and GeForce4 based on NVIDIA nfiniteFX Engine have introduced programmable vertex shaders and programmable pixel shaders /Technical Briefs from NVIDIA/ technologies. Shader functions are accessed by DirectX /TBfN/ or OpenGL interface. Among the vertex shader functions there are keyframe interpolation, procedural deformations and skeletal animation support in realtime. Keyframe interpolation and skinning (also "soft skinning", "vertex skinning" or "matrix palette skinning") used in skeletal animation are actually instances of vertex blending /Old short introduction from NVIDIA/. A very useful paper about the above techniques using GeForce vertex shader is Efficient Animation from NVIDIA.

Demos at Keyframe Interpolation, Procedural Deformation, Vertex Blending, Matrix Palette Skinning.



A similar concept of programmable pixel and vertex shaders is incorporated in newer ATI Radeon (since Radeon 8000 series) graphics processors within a SMARTSHADER technology and the skeletal animation support is already in older Charisma Engine /White Papers from ATI/. Besides the above character animation functions in NVIDIA, a new (SMARTSHADER 2.0, since Radeon 9700 Pro) function is realtime fur rendering.

Technology Papers and Presentations and a Vertex Blending demo at


The most up-to-date Matrox GPU (Graphics Processing Unit) – Parhelia utilizes hardware displacement mapping /White Paper from Matrox/ feature for realtime character animation instead of supporting skeletal animation technique. Several detailed characters can be derived from one base mesh using different displacement mappings.

Hardware displacement mapping demos at, especially a Characters rendering demo.


SGI seems not to support any kind of character animation directly by hardware.

The following Application Programmer Interfaces (API) are used to access graphics hardware functions.


DirectX is a common programming interface for multimedia applications (e.g. full-color graphics, video, 3D animation or surround sound) on Microsoft Windows operating systems. It provides a hardware independence to multimedia applications, ensuring them to run on any MS Windows-based computer. It takes full advantage of acceleration hardware if present, otherwise uses software emulation. Low-level access to hardware is provided by DirectX Foundation layer while a DirectX Media layer offers high-level functions to simplify application programming.

DirectX in MSDN Library – a number of articles about DirectX, including programming vertex and pixel shaders and character animation in DirectX.


OpenGL is the only truly open, vendor-neutral and multiplatform graphics standard for 2D,3D graphics and imaging. All OpenGL applications produce consistent visual display results on any OpenGL-compliant hardware, regardless of operating system or windowing system. It is widely established as an industry standard and very well documented.

As a response to the latest hardware development in token of programmability there is an effort for OpenGL 2.0 specification. It is intended to provide programmable alternatives to certain of the fixed functionality of OpenGL. Various programmable processors (e.g. vertex processor, fragment (pixel) processor, etc.) replace parts of the standard OpenGL rendering pipeline, using a high-level OpenGL Shading Language.

The above OpenGL 2.0 link comprises also the most up-to-date versions of white papers and presentations published on SIGGRAPH 2002 Course Notes CD-ROM as Course #46: OpenGL 2.0 /Abstract on SIGGRAPH homepage/.

Update: 13. 12. 2002