1 / 47

Physically-Based Simulation on the GPU

felix
Télécharger la présentation

Physically-Based Simulation on the GPU

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. Physically-Based Simulation on the GPU Mark Harris NVIDIA Developer Technology

    2. Simulating the world Simulate a wide variety of phenomena on GPUs Anything we can describe with discrete PDEs or approximations of PDEs I will talk about boiling, reaction-diffusion, fluids, and clouds Greg gave basic concepts needed to take simulation on the GPU to the next level. I’ll try to convince you unlimited possibilities. Can simulate any phenomenon that we can describe with PDE equations (discrete in space and time) I’ll also talk about approximate methods.Greg gave basic concepts needed to take simulation on the GPU to the next level. I’ll try to convince you unlimited possibilities. Can simulate any phenomenon that we can describe with PDE equations (discrete in space and time) I’ll also talk about approximate methods.

    3. Approximate Methods Several approximations for PDEs Cellular Automata (CA) Coupled Map Lattice (CML) Lattice-Boltzmann Methods (LBM) I’ll talk briefly about CML

    4. Coupled Map Lattice Mapping: Continuous state ? lattice nodes Coupling: Nodes interact with each other to produce new state according to specified rules Extension of CA: Continuous state at cells instead of discrete Like CA, CML tend to be composed of several simple rules that govern the evolution of the system. These are approximations chosen to be simple, while capturing the basic behaviors of the system.Like CA, CML tend to be composed of several simple rules that govern the evolution of the system. These are approximations chosen to be simple, while capturing the basic behaviors of the system.

    5. Example: Boiling State = Temperature Three operations: Diffusion, buoyancy, & latent heat Based on [Yanagita 1992] 3D Simulation Stack of 2D texture slices Sample from neighboring slices DEMO

    6. PDE Simulations Floating-point GPUs open up new possibilities Less Ad Hoc methods: real PDEs Must be able to discretize in space and time I’ll discuss three examples: Reaction-Diffusion Fluid Dynamics Cloud Dynamics

    7. Reaction-Diffusion Gray-Scott reaction-diffusion model [Pearson 1993] State = two scalar chemical concentrations Simple: just Diffusion and Reaction ops

    8. Demo: “Disease”

    9. Fluid Dynamics Solution of Navier-Stokes flow eqs. Stable for arbitrary time steps Means you can run it fast! [Stam 1999], [Fedkiw et al. 2001] Can be implemented on latest GPUs Quite a bit more complex than R-D or boiling See “Fast Fluid Dynamics Simulation on the GPU” Harris, GPU Gems, 2004

    10. Navier-Stokes Equations Describe flow of an incompressible fluid

    11. Fluid Simulator Demo

    12. Cloud Dynamics Overview 3 components 7 unknowns Fluid dynamics Motion of the air Thermodynamics Temperature changes Water continuity Evaporation, condensation

    13. Thermodynamics Temperature affected by Heat sources Advection Latent heat released / absorbed during condensation / evaporation ? temperature = advection + latent heat release + temperature input

    14. Water Continuity Water is conserved Condensation balances Evaporation ? H2O vapor = - ? H2O liquid ? = Phase changes + advection Liquid water is what is rendered Convert water field to a “density” texture

    15. Cloud Dynamics

    16. Simulation Algorithm Advect quantities q, qv, qc and u Similar to [Stam, 1999] Compute and apply accelerations Buoyancy Compute condensation, evaporation, and temperature changes Enforce momentum conservation Otherwise velocity dissipates, loses “swirls” Projection step of “Stable Fluids” [Stam, 1999]

    17. Simulation Algorithm Most steps are simple Most use one fragment program, one pass Programs come directly from equations Tricky parts: Staggered grid discretization See dissertation (harris, 2003) Stable Fluids projection step Vectorized solver (see earlier talks) Boundary conditions (Static Branch Resolution – earlier talks) 3D Simulation

    18. Flat 3D Textures

    19. Flat 3D Textures Advantages One texture update per operation Better use of GPU parallelism Non-power-of-two Textures Quick simulation preview Disadvantage Must compute texture offsets

    20. Conclusion GPUs are a capable, efficient, and flexible platform for physically-based visual simulation The possibilities are endless!

    21. Acknowledgements Fellow UNC Students Bill Baxter, Greg Coombe, Thorsten Scheuermann Anselmo Lastra and other UNC Faculty Sponsors: NVIDIA Corporation US National Institutes of Health US Office of Naval Research US Department of Energy ASCI program US National Science Foundation

    22. Selected References Chorin, A.J., Marsden, J.E. A Mathematical Introduction to Fluid Mechanics. 3rd ed. Springer. New York, 1993 Fedkiw, R., Stam, J. and Jensen, H.W. Visual Simulation of Smoke. In Proceedings of SIGGRAPH 2001, ACM Press / ACM SIGGRAPH. 2001. Harris, M., Coombe, G., Scheuermann, T., and Lastra, A. Physically-Based Visual Simulation on Graphics Hardware.. Proc. 2002 SIGGRAPH / Eurographics Workshop on Graphics Hardware 2002. Harris, Baxter, Scheuermann, Lastra. Simulation of Cloud Dynamics on Graphics Hardware. Proc. Graphics Hardware 2003. Harris, M. Real-Time Cloud Simulation and Rendering. Ph.D. Dissertation. http://www.markmark.net/dissertation Kaneko, K. (ed.), Theory and applications of coupled map lattices. Wiley, 1993. Nishimori, H. and Ouchi, N. Formation of Ripple Patterns and Dunes by Wind-Blown Sand. Physical Review Letters, 71 1. 197-200. 1993. Pearson, J.E. Complex Patterns in a Simple System. Science, 261. 189-192. 1993. Stam, J. Stable Fluids. In Proceedings of SIGGRAPH 1999, ACM Press / ACM SIGGRAPH, 121-128. 1999. Turk, G. Generating Textures on Arbitrary Surfaces Using Reaction-Diffusion. In Proceedings of SIGGRAPH 1991, ACM Press / ACM SIGGRAPH, 289-298. 1991. Witkin, A. and Kass, M. Reaction-Diffusion Textures. In Proceedings of SIGGRAPH 1991, ACM Press / ACM SIGGRAPH, 299-308. 1991.

    23. More References Gomez, M. Interactive Simulation of Water Surfaces. in Game Programming Gems. Charles River Media, 2000. p 187. Lengyel, E. Mathematics for 3D Game Programming & Computer Graphics. Charles River Media, 2002. Chapter 12, p 327. James, G. Operations for Hardware-Accelerated Procedural Texture Animation. in Game Programming Gems II. Charles River Media, 2001. p 497. Strzodka, R. Virtual 16 Bit Precise Operations on RGBA8 Textures. Proceedings VMV 2002, 2002 Strzodka, R., Rumpf, M. Using Graphics Cards for Quantized FEM Computations. In Proceedings VIIP 2001, 2001. Yanagita, T. Phenomenology of boiling: A coupled map lattice model. Chaos, 2 3. 343-350. 1992. Yanagita, T. and Kaneko, K. Coupled map lattice model for convection. Physics Letters A, 175. 415-420. 1993. Yanagita, T. and Kaneko, K. Modeling and Characterization of Cloud Dynamics. Physical Review Letters, 78 22. 4297-4300. 1997

    24. Extra Slides

    25. 3D simulation Lattice is now 3D 3D texture or stack of 2D textures Or tile slices onto a large 2D texture Neighbor sampling is 3D Texels in nearby slices If it’s a 3D texture, just perturb the r texture coordinate to get slice neighbors Otherwise bind neighbor slice textures

    26. Fluid Simulation Details

    27. Divergence-Free? In any element of fluid, inward velocity is balanced by outward velocity No sources or sinks Ensures mass / momentum conservation

    28. Algorithm Break it down [Stam 2000]: Add forces: Advect: Diffuse: Solve for pressure: Subtract pressure gradient:

    29. Algorithm Break it down [Stam 2000]: Add forces:

    30. Add Forces Scale force by time step, add to velocity In demo, we just “splat” Color of splat encodes direction and strength of force (determined by mouse motion) Simple fragment program adds gaussian splat to velocity texture

    31. Algorithm Break it down [Stam 2000]: Add forces: Advect:

    32. Advection Advection: quantities in a fluid are carried along by its velocity Want velocity at position x at new time t + ?t Follow velocity field back in time from x : (x - w1?t) Like tracing particles! Simple in a fragment program

    33. Algorithm Break it down [Stam 2000]: Add forces: Advect: Diffuse:

    34. Viscous Diffusion Viscous fluid exerts drag on itself Causes diffusion of velocity Implicit, discrete form of Explicit form is unstable Solution is just like the next step Simpler to explain the next step…

    35. Algorithm Break it down [Stam 2000]: Add forces: Advect: Diffuse: Solve for pressure:

    36. Poisson-Pressure Solution Poisson Equation Discretize, solve using iterative solver (relaxation) Jacobi, Gauss-Seidel, Multigrid, etc. Jacobi easy on GPU, the rest are trickier Demo uses Jacobi iteration (15-20 iters.) Boils down to repeated evaluation of:

    37. Algorithm Break it down [Stam 2000]: Add forces: Advect: Diffuse: Solve for pressure: Subtract pressure gradient:

    38. Subtract Pressure Gradient Last computation of the time step u is now a divergence-free velocity field Very simple fragment program

    39. Fluid Simulator Demo (more)

    40. Boundary Conditions Various types of BCs No-slip, free-slip, outflow, inflow, periodic, etc. Demo uses “no-slip” velocity BCs V = 0 at boundaries. Pressure: pure Neumann BCs Have to set them each iteration of solver p(boundary) = p(nearest non-boundary neighbor)

    41. Cloud Details

    42. Fluid Dynamics Incompressible Euler equations Same as previous fluid simulation Viscosity = 0 Buoyancy term Temperature, pressure, water changes induce motion

    43. Projection Step Enforces divergence-free velocity Iterative solution of Poisson-pressure eq. Poisson solver options Conjugate Gradient Multigrid Fast Fourier Transform Jacobi, Red-Black Gauss Seidel

    44. Vectorized Solvers Pressure is scalar, texels are RGBA Pack 4 pressure values in each texel Process 4x fewer fragments each iteration

    45. Simulation Amortization Simulation takes ~200 ms per step 64x64x64 volume, GeForce FX 5900 Ultra But simulation time step represents 3s of actual time On the order of visual change in real clouds So, faster than real time, but low frame rate

    46. Simulation Amortization Non-interactive application: Simulate as fast as possible Frame rate suffers

    47. Simulation Amortization Interactive frame rate! Simulation still proceeds pretty fast

More Related