Transcript Document

Physically-Based
Visual Simulation on
Graphics Hardware
Mark J. Harris
Greg Coombe
Thorsten Scheuermann
Anselmo Lastra
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
More, Better, Faster
Goal:
Flexible, real-time visual simulation
of diverse dynamic systems
Further increase visual realism of
interactive 3D applications
• Fluids, gases, fire, etc.
• Beyond canned texture animations
2
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Visual Simulation?
Goal is visual realism
Ad hoc simulation methods can provide
good visual results w/ less computation
• But not necessarily high numerical accuracy
If the user is convinced, numbers aren’t so
important
3
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Coupled Map Lattice
Mapping:
Continuous state  lattice nodes
Coupling:
Nodes interact with each other to
produce new state according to
specified rules
4
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Coupled Map Lattice
CML introduced by Kaneko (1980s)
Used CML to study spatio-temporal chaos
Others adapted CML to physical simulation:
•
•
•
•
•
•
5
Boiling [Yanagita 1992]
Convection [Yanagita 1993]
Clouds [Yanagita 1997; Miyazaki 2001]
Chemical reaction-diffusion [Kapral ‘93]
Saltation (sand ripples / dunes) [ Nishimori ‘93]
And more
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
CML vs. CA
CML extends cellular automata (CA)
6
CA
CML
SPACE
Discrete
Discrete
TIME
Discrete
Discrete
STATE
Discrete
Continuous
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
CML vs. CA
Continuous state is more useful
Discrete: physical quantities difficult
• Must filter over many nodes to get “real” values
Continuous: physical quantities easy
• Real physical values at each node
• Temperature, velocity, concentration, etc.
7
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
8
CML Operations
9
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Graphics Hardware
Why use it?
Speed: up to 25x speedup in our sims
GPU perf. grows faster than CPU perf.
Cheap: GeForce 4 Ti 4200 < $140
Load balancing in complex applications
Why not use it?
Low precision computation (not anymore!)
Difficult to program (not for long!)
10
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Hardware Implementation
11
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
CML Operations
Implement operations as building
blocks for use in multiple simulations
Diffusion
Buoyancy (2 types)
Latent Heat
Advection
Viscosity / Pressure
Gray-Scott Chemical Reaction
Boundary Conditions
User interaction (drawing)
Transfer function (color gradient)
12
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Results
Implemented multiple simulations
Boiling (2D and 3D)
Rayleigh-Bénard Convection (2D)
Reaction-diffusion (2D and 3D)
13
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Boiling
[Yanagita 1992]
State = Temperature
Three operations:
Diffusion, buoyancy,
latent heat
7 passes in 2D,
9 per 3D slice
14
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Rayleigh-Bénard Convection
[Yanagita & Kaneko 1993]
State = temp. (scalar) + velocity
(vector)
Three operations (10 passes):
Diffusion, advection, and viscosity / pressure
15
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Reaction-Diffusion
Gray-Scott reaction-diffusion model [Pearson
1993]
State = two scalar chemical concentrations
Simple: just diffusion and reaction ops
2 passes in 2D, 3 per 3D slice
16
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Hardware Limitations
Precision, precision, precision!
8 or 9 bits is far from enough
Diffusion is very susceptible to precision
problems
• All of our simulations use it!
High dynamic range simulations are very
susceptible
• Convection, reaction-diffusion
• Not boiling – relatively small range of values
17
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Hardware Limitations
3D texturing
It’s fast … unless you are doing
dynamic texturing
• Copy to slice of 3D texture is slow
• We use a stack of 2D slices to represent 3D
volume
Not all 2D texture shaders have 3D
analogs
• Fixed with general purpose fragment
programs (NV30, ATI R300)
18
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Future Work
Explore simulation techniques /
issues on graphics hardware
Other PDE solution techniques
More complex simulations
Use of HLSL, next-gen hardware
High dynamic range simulations
Applications:
Interactive environments, games
Scientific Computation
Dynamic painting / modeling applications
Dynamic procedural texture synthesis
Dynamic procedural model synthesis
…
19
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Conclusion
GPUs are a capable, efficient,
and flexible platform for
physically-based visual
simulation
20
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Acknowledgements
NVIDIA Developer Relations
HWW Paper Reviewers
Sponsors:
NVIDIA Corporation
US National Institutes of Health
US Office of Naval Research
US Department of Energy ASCI program
US National Science Foundation
21
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
For More Information
http://www.cs.unc.edu/~harrism/cml
Email [email protected]
22
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Extra Slides
23
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
CML Philosophy
Bottom-up approach.
Don’t directly simulate
macroscopic behavior:
Perform simple, local, “microscopic”
lattice operations.
24
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
CML Philosophy
Macroscopic behavior is
aggregate of simple operations.
e.g. Boiling simulation:
• 3 operations: diffusion, thermal buoyancy,
latent heat.
25
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
CML Operations
Typically consist of four
components:
1.
2.
3.
4.
26
Neighbor sampling
Computation on Neighbors
New state computation
State update
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Neighbor Sampling
Set a 1:1 mapping from pixels to texels:
Set view port resolution to texture resolution.
Use orthographic projection.
To sample an immediate neighbor of
each texel:
Draw a single quad filling the view port.
Set texture coordinates at corners to {(0,0), (0,1),
(1,1), (1,0)} plus the offset to the neighbor.
• E.G. Offset to right is (w, 0), where is view space texel
width.
27
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Neighbor Sampling
Neighbor sampling is easy with
vertex programs.
Store table of offsets in vertex program
memory.
At run time, pass table index that
represents the type of offset needed.
Render a quad (with only a single set of
base texcoords).
Use vertex program to add offsets and
generate texcoords for all texture units.
28
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Computation on Neighbors
Use texture table lookups to
compute arbitrary functions of
sampled values.
Dependent texturing using texture
shaders.
29
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
New State Computation
Combine sampled values and
computations to compute new state.
Implemented on GeForce 3 using
register combiners.
Arithmetic: add, subtract, multiply, scale, bias
and dot product.
8 cascaded register combiners + 1 “final”
combiner.
9-bit signed arithmetic internally.
8-bit unsigned on output (can clamp or scale and
bias).
30
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
State Update
Store the newly computed state to
texture.
We use glCopyTexSubImage2D()
Fast copy from frame buffer to texture memory.
Render to texture OpenGL extension
Will reduce cost, but still in development.
Already available in Direct3D.
31
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Common Operations
Laplacian:
2
2

T

T
2
 T ( x, y)  2  2 .
x
y
Discrete form:
2Ti, j  Ti1, j  Ti1, j  Ti, j 1  Ti, j 1  4Ti, j
Diffusion:
cd 2
T  Ti , j   Ti , j .
4
'
i, j
cd is the diffusion coefficient
32
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Common Operations
Directional forces
Buoyancy (used in convection simulation):


vx, y ( y)  vx, y ( y)  c2b [2Tx, y  Tx1, y  Tx1, y ].
Thermal buoyancy with phase change:
Tx, y  Tx , y  2 Tx , y [  (Tx , y 1 )   (Tx , y 1 )],
 (T )  tanh[ (T  Tc )],
• Uses dependent texture to compute tanh
• Tc is the boiling point
33
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Boiling Simulation Performance
25x speedup
34
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Interactive Framework
CMLlab
Framework for building and testing CML
simulations
35
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Real Applications
Fast simulation integrated with 3D
environments
Virtual environment in HMD w/ head
tracking
WildMagic Game
Engine [Eberly 2001]
36
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
Graphics Hardware
Performance
109
One-pixel polygons (~10M polygons @ 30Hz)
GeForce 3
& Radeon
108
UNC/HP PixelFlow
Slope ~2.4x/year
(Moore's Law ~ 1.7x/year)
Peak
Perf.
107
SGI
IR
Division
Pxpl6
UNC Pxpl5
('s/sec)
SGI SkyWriter
106
SGI VGX
Flat
shading
105
UNC Pxpl4
HP VRX
SGI GT
SGI Iris
86
E&S
F300
88
Gouraud
shading
90
Nvidia TNT
E&S
3DLabs
SGI
Harmony
Cobalt
Glint
Accel/VSIS
Voodoo
Megatek
E&S Freedom
SGI
RE2
Stellar GS1000
HP CRX
104
HP TVRX
SGI
RE1
SGI
R-Monster
PC Graphics
Division VPX
Textures
Antialiasing
92
Year
94
96
98
00
Graph courtesy of Professor John Poulton
37
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL