SLI Zone
NVIDIA.com Developer Home

Last Updated: 10 / 02 / 2008

Real-time Character Rendering and Animation

Character Creation Info from NVIDIA

At the heart of a great game are great characters. NVIDIA has consistently pioneered great character animation in our sample codes, demo programs, and assistance to game developers worldwide.

Skin | Hair | Clothing | Animation

Skin

From NVIDIA Graphics SDK 9.52:
Raytraced Refraction
This eyeball shader presents a method for adding high-quality details to small objects using a single-bounce ray traced pass. In this example, the polygonal surface is sampled and a refraction vector is calculated. This vector is then intersected with a plane that is defined as being perpendicular to the object's X axis. The intersection point is calculated and used as texture indices for a painted Iris.
The sample permits varying the index of refraction, the depth and density of the lens. Note that the choice of geometry is arbitrary -- this entry is a sphere, but any polygonal model can be used.
From NVISION08:
Life on the Bleeding Edge:
More Secrets of the NVIDIA Demo Team
Covers the complete development of characters and effects, from concept art until final 3D code, for the NVIDIA "Medusa" Demo.
From GDC 2008:
Advanced Skin Rendering in NVIDIA's Human Head Demo (Video)
Rendering realistic human skin represents one of the toughest challenges in computer graphics. In this session, attendees will learn about an extremely realistic, physically-based real-time skin shader that is easy to implement and highly scalable for optimal performance.
From SIGGRAPH 2007:
Advanced Skin Rendering (Powerpoint)
(Related PDF from GDC 2007)
NVIDIA's Demo Team will do an overview of its advanced skin rendering techniques as seen in the Human Head demo. The demo engineers will discuss a highly realistic, physically based real-time skin shader that is easy to implement and highly scalable to meet the performance needs of your application. The skin rendering technique is explained in detail in GPU Gems 3.
Ogres and Fairies: Secrets of the NVIDIA Demo Team
GDC 2003 Presentation sharing insights into how the Dawn, Ogre, Time Machine, and Toys demos were created by the NVIDIA Demo Team.
GPU Gems online:
Skin in the "Dawn" Demo
Fire in the "Vulcan" Demo
Cinematic Lighting
VirtualCinematography.ORG
Texture-Space Diffusion, as using in NVIDIA's advanced skin shading samples, was pioneered by George Borshukov. This is his personal site containing numerous excellent examples.
Softimage Face Robot
Softimage/Avid
Face Robot is Softimage's facial animation system -- Softimage has implemented a version of texture-space diffusion towork directly within this tool.

Hair

From NVIDIA Graphics SDK 10.5:
Fur - Shells and Fins (Whitepaper)
This sample demonstrates a simple way of rendering fur using the shells and fins technique. The geometry shader is used for creating the geometry for fins on silhouette and near silhouette edges.
From NVISION08:
Beautiful Women of the Future
Beautiful men and women from the future are arriving on your PC. This presentation covers the role and promise of realtime 3D characters, specifics of technique in rendering, animation, shadowing, and includes dozens of top-notch samples created by today's best character artists.
Presentations from SIGGRAPH 2008:
Real Time Hair Simulation and Renderng on the GPU (Video)
(Related Japanese Presentation)
Two separate SIGGRAPH presentations cover a variety of hair topics:
Real-time Hair Rendering on the GPU
Simulating and rendering realistic hair with tens of thousands of strands is something that until recently was prohibitively expensive for real-time use. In this session, we discuss how to render realistic hair with high geometric complexity in real-time on the GPU. Amongst cover topics including efficient creation and rendering of high amounts of geometry for hair (essential for creating realistic hair especially when in motion), shading, self-shadowing, level of detail, and important performance optimizations. We also talk about how to use next-generation hardware tessellation to make creating and rendering hair much more intuitive and efficient.
Let's Get Physical: Real Time Hair Simulation and Rendering on the GPU
Simulating and rendering realistic hair with tens of thousands of strands is something that until recently was not possible in real time. In this talk we present a method for simulating and rendering realistic hair in real time using the power and programmability of modern GPUs (Graphics Processing Units). Our method utilizes new features of graphics hardware (including Stream Output, Geometry Shader and Texture Buffers) that make it possible for all simulation and rendering to be processed on the GPU in an intuitive manner, with no need for CPU intervention or read back. In addition, we propose fast new algorithms for inter-hair collision, and collision detection and resolution of interpolated hair.
GPU Gems 2 online:
Hair Animation and Rendering in the Nalu Demo
Adaptive Grouping and Subdivision for Simulating Hair Dynamics
Kelly Ward, Ming C. Lin, University of North Carolina at Chapel Hill. Presents useful LOD schemes for hair animation.

Clothing

From NVIDIA Graphics SDK 10.5:
Cloth Simulation (Whitepaper)
This sample demonstrates how to simulate cloth on the GPU using DirectX 10. The cloth vertex positions are computed in several rendering passes by looping through the vertex and geometry shader stages using the stream output stage to stream the positions out of the geometry stage.
Samples from NVIDIA Graphics SDK 9.52:
GPU Cloth (Whitepaper)
This sample demonstrates how to use Shader Model 3.0 to simulate and render cloth on the GPU. The cloth vertex positions are computed through several pixel shaders and saved into a texture. A vertex shader then reads these positions using Vertex Texture Fetch (VTF) to render the cloth.
Cloth Simulation with GLSL
This example demonstrates a simple cloth simulation that executes entirely on the GPU using fragment programs and floating point buffers.

Animation

Samples from NVIDIA Graphics SDK 10.5:
Skinning with Dual Quaternions (Whitepaper)
"Quaternion skinning" refers to a number of skinning animation techniques that, in contrast to the standard skinning, use quaternions rather than matrices. Such methods have been developed with the purpose to eliminate well-known artifacts inherent to the regular skinning, which uses matrices. This sample demonstrates only one of those techniques, "dual quaternion linear blending."
Skinned Instancing (Whitepaper)
This sample shows the use of instancing and vertex texture fetch on the GeForce 8 Series to implement a crowd of GPU animated characters, all independently animating but drawn with a single draw call.
Instanced Tessellation
This example shows how to simulate tessellation using instancing. Per patch tessellation levels are implemented as described by Dyken et al in Semi-uniform Adaptive Patch Tessellation.
The example uses tessellation to render a displaced subdivision surface rendered with a precomputed Bezier approximation to the Catmull Clark surface. Control points of the bezier mesh are computed using the algorithm by Loop and Schaefer in Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches.
Deformable Bodies (Whitepaper)
This sample shows a full physical simulation of non-rigid deformable bodies on the GPU. Simulation, collision detection and response, and rendering are all done on the GPU.
GPUBlendShapes (Whitepaper)
This paper presents two methods for computing Blend Shapes on the GPU. The technique produces hybrid, blended meshes by combining a large number of input meshes. GPU generations prior to GeForce 8800 had to use the vertex attributes to send additional data for blend shapes. Because of the limited amount of available attributes, few simultaneous blend shapes meshes were possible. The GeForce 8800 permits a large number of input meshes, with no fixed limit.
Samples from NVIDIA Graphics SDK 9.52:
Improved Skinning
This shader takes in a set of all the transformation matrices that can affect a particular bone. Each bone also sends in a list of matrices that affects it. There is then a simple loop that for each vertex goes through each bone that affects that given vertex and transforms it. This allows just one Cg program to do the entire skinning for vertices affected by any number of bones, instead of having one program for one bone, another program for two bones, and so on.
Matrix Palette Skin (Whitepaper)
This SDK entry shows an implementation of matrix palette skinning, using a vertex shader to animate a bone based model.
From SIGGRAPH 2008:
Next-Generation Hardware Rendering of Displaced Subdivision Surfaces
In this talk we provide an overview of the next-generation tessellation pipeline and its motivation. Our focus is on one of the primary applications: rendering of displaced subdivision surfaces, which dramatically increases the realism of animated characters. We also show how to adapt your production pipelines in order to create compelling content that takes advantage of this innovative rendering model.
From SIGGRAPH 2007:
GPU Gems 3 Showcase: Playable Universal Capture (External)
This overview will discuss and demonstrate the real-time implementation of Universal Capture - a facial capture approach that delivers unmatched animation fidelity while offering flexibility to create unique visuals. The technique has progressed from its film applications (The Matrix movies) to fully interactive (E3 2006 Tiger Woods Demo), ultimately being used for animating facial performances in the video games Tiger Woods PGA Tour 07 and Need for Speed: Carbon. The "Playable Universal Capture" technique by George Borshukov, Jefferson Montgomery and John Hable from Electronic Arts is described in GPU Gems 3.
Ogres and Fairies: Secrets of the NVIDIA Demo Team
GDC 2003 Presentation sharing insights into how the Dawn, Ogre, Time Machine, and Toys demos were created by the NVIDIA Demo Team.
GPU Gems online:
Animation in the "Dawn" Demo
Softimage Face Robot
Face Robot is Softimage's facial animation system -- Softimage has implemented a version of texture-space diffusion towork directly within this tool.

Want to Learn More? NVIDIA Documentation Home Page




nvidiadeveloper Twitterfeed
Popular References
Free Books Online