SDK White Paper. Matrix Palette Skinning An Example

Similar documents
SDK White Paper. Vertex Lighting Achieving fast lighting results

Technical Report. Anisotropic Lighting using HLSL

SDK White Paper. Occlusion Query Checking for Hidden Pixels

SDK White Paper. HLSL Blood Shader Gravity Maps

Application Note. NVIDIA Business Platform System Builder Certification Guide. September 2005 DA _v01

User Guide. Vertex Texture Fetch Water

GPU LIBRARY ADVISOR. DA _v8.0 September Application Note

White Paper. Texture Arrays Terrain Rendering. February 2007 WP _v01

Technical Report. GLSL Pseudo-Instancing

Technical Brief. LinkBoost Technology Faster Clocks Out-of-the-Box. May 2006 TB _v01

Enthusiast System Architecture Certification Feature Requirements

White Paper. Soft Shadows. February 2007 WP _v01

GRID SOFTWARE FOR RED HAT ENTERPRISE LINUX WITH KVM VERSION /370.28

White Paper. Denoising. February 2007 WP _v01

SDK White Paper. Video Filtering on the GPU. Eric Young NVIDIA Corporation 2701 San Tomas Expressway Santa Clara, CA 95050

Technical Report. Mesh Instancing

User Guide. GPGPU Disease

NVWMI VERSION 2.18 STANDALONE PACKAGE

User Guide. DU _v01f January 2004

Skinned Instancing. Bryan Dudash

NVWMI VERSION 2.24 STANDALONE PACKAGE

SDK White Paper. Soft Shadows

Android PerfHUD ES quick start guide

White Paper. Solid Wireframe. February 2007 WP _v01

NVIDIA nforce 790i SLI Chipsets

Multi-View Soft Shadows. Louis Bavoil

User Guide. GLExpert NVIDIA Performance Toolkit

GLExpert NVIDIA Performance Toolkit

GRID SOFTWARE FOR MICROSOFT WINDOWS SERVER VERSION /370.12

NSIGHT ECLIPSE PLUGINS INSTALLATION GUIDE

Technical Brief. NVIDIA Quadro FX Rotated Grid Full-Scene Antialiasing (RG FSAA)

Cg Toolkit. Cg 1.2 Release Notes

Sparkling Effect. February 2007 WP _v01

Technical Brief. NVIDIA and Microsoft Windows Vista Getting the Most Out Of Microsoft Windows Vista

Order Independent Transparency with Dual Depth Peeling. Louis Bavoil, Kevin Myers

Horizon-Based Ambient Occlusion using Compute Shaders. Louis Bavoil

NVIDIA SDK. NVMeshMender Code Sample User Guide

Cg Toolkit. Cg 1.4 rc 1 Release Notes

NVIDIA CAPTURE SDK 6.1 (WINDOWS)

Technical Brief. AGP 8X Evolving the Graphics Interface

Constant-Memory Order-Independent Transparency Techniques

QUADRO SYNC II FIRMWARE VERSION 2.02

User Guide. TexturePerformancePBO Demo

Tuning CUDA Applications for Fermi. Version 1.2

Deinterleaved Texturing for Cache-Efficient Interleaved Sampling. Louis Bavoil

Cg Toolkit. Cg 2.1 October 2008 Release Notes

Soft Particles. Tristan Lorach

High Quality DXT Compression using OpenCL for CUDA. Ignacio Castaño

Cg Toolkit. Cg 2.0 January 2008 Release Notes

Cg Toolkit. Cg 2.1 beta August 2008 Release Notes

Technical Brief. FirstPacket Technology Improved System Performance. May 2006 TB _v01

NVIDIA CAPTURE SDK 7.1 (WINDOWS)

Technical Report. SLI Best Practices

NVIDIA CAPTURE SDK 6.0 (WINDOWS)

White Paper. Perlin Fire. February 2007 WP _v01

Cg Toolkit. Cg 2.0 May 2008 Release Notes

Cg Toolkit. Cg 2.2 April 2009 Release Notes

CUDA/OpenGL Fluid Simulation. Nolan Goodnight

Cg Toolkit. Cg 1.3 Release Notes. December 2004

Technical Brief. NVIDIA Storage Technology Confidently Store Your Digital Assets

CUDA Particles. Simon Green

Optical Flow Estimation with CUDA. Mikhail Smirnov

CUDA TOOLKIT 3.2 READINESS FOR CUDA APPLICATIONS

NVIDIA DEBUG MANAGER FOR ANDROID NDK - VERSION 8.0.1

MOSAIC CONTROL DISPLAYS

NVIDIA CUDA C GETTING STARTED GUIDE FOR MAC OS X

Technical Report. SLI Best Practices

PASCAL COMPATIBILITY GUIDE FOR CUDA APPLICATIONS

GRID VIRTUAL GPU FOR HUAWEI UVP Version ,

MAXWELL COMPATIBILITY GUIDE FOR CUDA APPLICATIONS

VIRTUAL GPU MANAGEMENT PACK FOR VMWARE VREALIZE OPERATIONS

Histogram calculation in CUDA. Victor Podlozhnyuk

Getting Started. NVIDIA CUDA C Installation and Verification on Mac OS X

Semantic and Annotation Remapping in FX Composer

Histogram calculation in OpenCL. Victor Podlozhnyuk

Getting Started. NVIDIA CUDA Development Tools 2.3 Installation and Verification on Mac OS X

NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X

Cg Toolkit. Cg 2.2 February 2010 Release Notes

VIRTUAL GPU LICENSE SERVER VERSION

RMA PROCESS. vr384 October RMA Process

Getting Started. NVIDIA CUDA Development Tools 2.2 Installation and Verification on Mac OS X. May 2009 DU _v01

KEPLER COMPATIBILITY GUIDE FOR CUDA APPLICATIONS

CUDA-GDB: The NVIDIA CUDA Debugger

Technical Report. Non-Power-of-Two Mipmap Creation

GRID VIRTUAL GPU FOR HUAWEI UVP Version /

GRID VGPU FOR VMWARE VSPHERE Version /

Tegra 250 Development Kit Android Setup Experience

NVBLAS LIBRARY. DU _v6.0 February User Guide

JETSON TX1 AND TX2 VOLTAGE AND CURRENT MONITOR CONFIGURATION

Specification. Tesla S870 GPU Computing System. March 13, 2008 SP _v00b

SDK White Paper. Improve Batching Using Texture Atlases

GETTING STARTED WITH CUDA SDK SAMPLES

Cg Toolkit. Cg 1.2 User s Manual Addendum

NVIDIA CUDA GETTING STARTED GUIDE FOR MICROSOFT WINDOWS

INLINE PTX ASSEMBLY IN CUDA

NVIDIA CUDA C INSTALLATION AND VERIFICATION ON

NVIDIA Tesla Compute Cluster Driver for Windows

TESLA 1U GPU COMPUTING SYSTEMS

NVIDIA CUDA DEBUGGER CUDA-GDB. User Manual

NVIDIA Quadro K6000 SDI Reference Guide

Transcription:

SDK White Paper Matrix Palette Skinning An Example WP-01407-001-v01 July 2004

Abstract Matrix Palette Skinning Example Bone based animation is a good way to add believable animation to your engine without the overhead of vertex animation (morph targets). This example implements a simple bone-based animation technique that can be used on any PS/VS1.1 class hardware. On more advanced hardware this technique can be extended to support more bones and more complicated lighting. This paper assumes that the reader is familiar with the concepts of bone-based animation, and shader programming. This sample was written to run under DirectX9.0b on hardware that supports PS/VS1.1. Bryan Dudash bdudash@nvidia.com NVIDIA Corporation 2701 San Tomas Expressway Santa Clara, CA 95050 WP-01407-001_v01 1

Bone-based Animation Discussion Bone based animation is a simple concept in which vertices on a model are associated with bones that are animated in space. The vertices blend the delta transformations of a group of bones to obtain a final transformation matrix. Implementing the transformation of the vertices based on the bone matrices on hardware is called hardware skinning, or matrix palette skinning. In order to animate a model using bone animation, you need to have the bone positions per frame, and the bone weights per vertex. The bone matrices are stored in the vertex shader constant registers and accessed by a vertex shader which in turn transforms each model vertex to its correct position. The bone weights per vertex are passed down on a per vertex basis in the vertex stream. Data Use How it is passed down Per Frame Bone Transforms Per vertex Bone indices Per vertex Bone weights Up to 4 used per vertex to perturb it s position, orientation, and/or scale Used to identify an offset into the bone matrix list(matrix palette) for up to 4 bones per vertex Controls how much each of the up to 4 bones weight the transform of the vertex Vertex Shader Constants Embedded per vertex in the vertex stream Embedded per vertex in the vertex stream Table 1. Data required for hardware skinning WP-01407-001_v01 2

Matrix Palette Skinning Implementation Notes This example implements hardware skinning via HLSL which simplifies implementation and makes it as easy to follow as pseudo-code. Please refer to the.fx file with the sample source code for the details on the implementation. Some implementation details to note are: 1. The normal is also transformed. However, you only use the primary bone as variations based on the remaining bones are usually undetectable. This makes the normal subtly incorrect, but usually this cannot be noticed. This is done for performance reasons. 2. This sample implements simple per vertex diffuse lighting by taking the dot product of the transformed normal and the light vector. The user may of course implement a user-defined lighting equation. WP-01407-001_v01 3

Notice ALL NVIDIA DESIGN SPECIFICATIONS, REFERENCE BOARDS, FILES, DRAWINGS, DIAGNOSTICS, LISTS, AND OTHER DOCUMENTS (TOGETHER AND SEPARATELY, MATERIALS ) ARE BEING PROVIDED AS IS." NVIDIA MAKES NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. Information furnished is believed to be accurate and reliable. However, NVIDIA Corporation assumes no responsibility for the consequences of use of such information or for any infringement of patents or other rights of third parties that may result from its use. No license is granted by implication or otherwise under any patent or patent rights of NVIDIA Corporation. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all information previously supplied. NVIDIA Corporation products are not authorized for use as critical components in life support devices or systems without express written approval of NVIDIA Corporation. Trademarks NVIDIA and the NVIDIA logo are trademarks or registered trademarks of NVIDIA Corporation in the United States and other countries. Other company and product names may be trademarks of the respective companies with which they are associated. Copyright 2004 NVIDIA Corporation. All rights reserved NVIDIA Corporation 2701 San Tomas Expressway Santa Clara, CA 95050 www.nvidia.com