GDC 2005 - PowerPoint PPT Presentation

About This Presentation
Title:

GDC 2005

Description:

Advanced Skin Rendering in NVIDIA's Human Head Demo. 4:00-5:00 pm, Wednesday, Feb. 20 ... GPU Optimization with the Latest NVIDIA Performance Tools. 10:30-11: ... – PowerPoint PPT presentation

Number of Views:91
Avg rating:3.0/5.0
Slides: 30
Provided by: jami120
Category:
Tags: gdc | nvidia

less

Transcript and Presenter's Notes

Title: GDC 2005


1
Physical Simulation on GPUs
Jim Van VerthOpenGL Software EngineerNVIDIAjv
anverth_at_nvidia.comwww.nvidia.comwww.essentialmat
h.com
2
Physics on GPU
  • Topics of discussion
  • Ways of parallelizing physics
  • Examples of GPU physics
  • CUDA and you

3
Parallelizing Physics
  • What weve talked about so far

Display
CPU
GPU
Game Logic, AI, Physics
Graphics
Awfully busy improve performance?
4
Parallelizing Physics
  • Solution 1 Multicore CPU

Display
CPU
GPU
Game Logic, AI
Physics
Graphics
5
Parallelizing Physics
  • Solution 2a Cell processor

Game Logic, AI
Display
CPU
GPU
Graphics
SPU
SPU
SPU
SPU
SPU
SPU
Physics
6
Parallelizing Physics
  • Solution 2b AGEIA processor


Game Logic, AI
Display
CPU
GPU
Graphics

PPU
Physics
7
Parallelizing Physics
  • Solution 3 Programmable GPU

Display
CPU
GPU
Game Logic, AI
Graphics, Physics
8
Parallelizing Physics
  • Solution 3b SLI

GPU
Display
Graphics
CPU
Game Logic, AI
GPU
Physics
9
GPU Computing
  • Modern GPU has many independent processors
  • GeForce 8800 GTX 128 SPs
  • GeForce 8800 GT 112 SPs
  • Mostly processing power, not cache
  • GeForce 8800 GTX 300-400 Gflops
  • GeForce 8800 GT 500 Gflops
  • A lot of parallel power for physics!

10
GPU Physics Example
  • From GPU Gems 3
  • Takahiro Harada, Real-time Rigid Body Simulation
    on GPUs
  • Simple physics engine, all running on GPU

11
GPU Physics Example
  • Idea GPU is good at
  • Many similar computations
  • Simple data
  • So
  • Particles for collision representation
  • Grid for collision detection
  • Simple collision response

12
Object Representation
  • Global object data in texture pairs
  • Alternate frame to frame

Linear Momentum
Angular Momentum
Position
Orientation
13
Object Representation
  • Collision rep Solid (or shell) of particles
  • Store as
  • Fixed radius
  • Displacement from center of mass

14
Object Representation
  • Smaller particles better fit
  • But more processing

15
Object Representation
  • Particle data stored in texture and three
    rendertargets
  • Update position, velocity each frame from global
    object data
  • Update force from collisions

Displacement
Velocity
Force
Position
16
Pipeline
Update Particles
Calculate Grid
Compute Collisions
Integrate
17
Update Particles
Update Particles
  • For each object do
  • Iterate through all particles
  • Update particle position, velocity

Calculate Grid
Compute Collisions
Integrate
18
Grid Representation
Update Particles
  • Stored as slabs within 2D rendertarget
  • Voxel stored as texel
  • Four particle indices per texel

Calculate Grid
Compute Collisions
Integrate
19
Grid Creation
Update Particles
  • For each particle do
  • Compute grid index
  • Write particle index to appropriate component at
    that location

Calculate Grid
Compute Collisions
Integrate
20
Collision Resolution
Update Particles
  • For each voxel do
  • For each particle in voxel do
  • Compute force based on particles in this and 27
    neighboring voxels
  • Regardless of collision!
  • Spring force
  • Damping from relative vel.
  • Tangential force

Calculate Grid
Compute Collisions
Integrate
21
Integration
Update Particles
  • Compute new linear and angular momenta based on
    collision (and other) forces
  • Force/torque on rigid body is weighted sum of
    forces from each particle
  • Compute new position and orientation from momenta

Calculate Grid
Compute Collisions
Integrate
22
Demo
23
Other approaches
  • Simon Greens particles
  • N-body
  • Parallelize one piece
  • Ex. Broad Phase (GPU Gems 3)
  • Do smaller problem
  • Ex. Fluid dynamics (Hellfire London)

24
GPU Computing
  • How to program?
  • Pre-G80, had to use Cg, GLSL, HLSL
  • Problems
  • Requires specialized shader knowledge
  • Data is often texture or rendertarget
  • Cant scatter data easily

25
CUDA
  • Solution is CUDA
  • Stands for Compute Unified Device Architecture
  • Extensions on C/C
  • Interoperable with D3D and OpenGL
  • www.nvidia.com/cuda
  • Use it!

26
CUDA
  • Updating our example
  • Instead of Cg, use standard C w/CUDA extensions
  • Instead of textures or rendertargets, just use
    CUDA arrays
  • Instead of vertex shader, use scatter operation

27
NVIDIA Presentations _at_ GDC 2008
  • NVIDIA SessionsRoom 3003 West Hall
  • Advanced Skin Rendering in NVIDIA's Human Head
    Demo400-500 pm, Wednesday, Feb. 20
  • Particle-based Fluid Simulation For
    Games900-930 am, Thursday, Feb. 21
  • 3D Stereoscopic Game Development - How to Make
    Your Game Look Like Beowulf 3D930-1000 am,
    Thursday, Feb. 21
  • GPU Optimization with the Latest NVIDIA
    Performance Tools1030-1130 am, Thursday, Feb.
    21
  • NVIDIA FX Composer 2 Shader Development
    Unleashed1200-100 pm, Thursday, Feb. 21
  • General GDC Sessions
  • Advanced Visual Effects with Direct
    3D1000-1800, Monday, Feb 18Room 2007 - West
    Hall
  • Beyond Printf Debugging Graphics Through
    Tools1200-100 pm, Thursday, Feb. 21 Room 131
    - North Hall
  • Real-Time Ambient Occlusion1450-1510, Friday,
    Feb 22 Room 3004 - West Hall
  • Physics for Game Programmers1000-1800,
    Tuesday, Feb 19 Room 2018 - West Hall

28
The first-ever visual computing mega-event.. The
universe of visual computing in one place at one
time
  • 15,000 Visitors
  • 10,000 amateur and pro gamers, demoscencers, Game
    modders, machinima creators, and 3D artists
  • 3,000 technical and marketing professionals from
    multiple industries
  • 2000 visitors
  • 300 press analysts

San Jose downtown Aug 25-27 2008
http//www.nvision2008.com
29
Questions?
Write a Comment
User Comments (0)
About PowerShow.com