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 Ti1, j Ti1, 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): vx, y ( y) vx, y ( y) c2b [2Tx, y Tx1, y Tx1, 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