Title: Fast Hydraulic Erosion Simulation and Visualization on GPU
1Fast Hydraulic Erosion Simulation and
Visualization on GPU
- Xing Mei1 Philippe Decaudin2 Bao-Gang Hu1
- 1. CASIA (China) 2. INRIA (France)
Pacific Graphics07
2Outline
- Introduction
- Hydraulic Erosion
- Existing Methods
- Hydraulic Erosion on GPU
- Method Overview
- Simulation Steps
- Multi-pass Implementation on GPU
- Results
- Conclusion Future Work
3Introduction- Hydraulic Erosion
- Process
- Water flow takes away (dissolves) the soil
- and relocates (deposits) it somewhere else
- Effect
- Changes terrain appearance
- Creates interesting geo-morphological structures
-
Eroded landscape on Maui Island
Gullies
4Introduction- Erosion Simulation (Why?)
- Enhance realism
-
- A useful complement to fluid simulation
- Topographical changes affect the water flow
Chiba98
Beneš06
5Introduction- Existing Methods
- Procedural Kelly88, Prusinkiewicz93
- Ad hoc rules with fractal terrain generation
- Fast and efficient No water flow involved
- Limited control on the erosion results
- Physically Based Simulation
- Musgrave89, Chiba98, Neidhold05
- Simulation on already-existing terrains
- Controllable Erosion Process, but computationally
expensive - 4 fps on 256x256 grids Neidhold05
- 5 fps on 300x300 grids Beneš07
Limited for interactive applications
6Erosion on GPU- Motivation
- A novel hydraulic erosion simulation method
- Effective
- produces the important features in the erosion
process Gullies, water catchments, deposited
sediment - Efficient
- Well mapped to GPU
- Interactive frame rates for large size terrains
7Erosion on GPU- Method Overview
- 5 steps in one cycle of the simulation
(1) Water Increment
(2) Water Movement (flow simulation)
water
(3) Erosion or Deposition
(4) Sediment Transportation
Rainfall River Source
(5) Evaporation
Water Movement
Erosion
Evaporation
Terrain
Sediment Transportation
Catchment
Deposition
Deposited Sediment
8Erosion on GPU- Data Structure
- Layers of 2D arrays
- Each step should update the cell data in parallel
- No scattering operations on the data array
involved -
Suspended Sediment
Outflow flux Velocity
Water Height -
Terrain Height -
Arrays
cell
9Erosion on GPU(1) Water Increment
- Two kinds of sources
- River sources fixed location, radius,
intensity - Raindrops random location, radius, intensity
-
Water increment
10Erosion on GPU(2) Water Movement (Flow
Simulation)
- Possible Models?
- GPU friendly
- Grid-based methods gt Lagrangian methods
- Efficient
- Shallow water model gt 3D Navier-Stokes
Equation - Suitable for Erosion-Deposition
- Velocity field is necessary
- Previous models on shallow water framework
- Simplified Newtonian physics model Neidhold05
- hard to parallelize
- KassMillers implicit method Beneš07
- many iterations over the grid, not efficient
for large size terrain - Our choice
- The Virtual Pipe model OBrien95
-
-
11Erosion on GPU(2) Water Movement (Flow
Simulation)
- Virtual Pipe Model
- Water is exchanged between cells through virtual
pipes - How much water exchanged through each pipe?
- Flux accelerated by the hydrostatic
pressure difference -
- Two-Step Process
- Update Flux
- Update Water Height
- A simple explicit method
P0
P0
P1
P2
12Erosion on GPU(2) Water Movement (Flow
Simulation)
- Two problems about the original model
- Staggered grid
- water height (d) cell center
- flux (F) cell border
- 2. Non-negative water update
- A scaling back process
- scattering operations are involved
- Both are not GPU-friendly
-
13Erosion on GPU(2) Water Movement (Flow
Simulation)
- Adaptation to the original model
- the outflow flux for each cell
- Flux (F) and outflow flux (f)
- Water height update (d)
- - send away the outflow flux
- - collect inflow flux from neighbours
Outflow flux
Inflow flux
Cell(x,y)
14Erosion on GPU(2) Water Movement (Flow
Simulation)
- Non-negative water update
-
-
omitted, strengthened condition
a scaling factor K limiting the outflow flux
15Erosion on GPU(2) Water Movement (Flow
Simulation)
- 3-step process
- Update outflow flux
- Update water height
- Update (horizontal) velocity field
- From Flux (f) to Velocity (V)
- No-Slip Boundaries
- set outflow flux to 0 for boundary cells
- Limitation for time step
-
16Erosion on GPU(3) Erosion Deposition
- Sediment transport capacity
- Current suspended sediment
- How to compute for each cell ?
- We adapt a classic model from soil science
Julien85
17Erosion on GPU(4) Sediment Transportation
- Suspended sediment (S) is advected by the
velocity field -
- Many GPU-friendly schemes to solve the equation
- Stable semi-Lagrangian method Stam99
- Upwind differencing scheme
- More mass-conservative methods such as BFECC
Kim05, Selle07 -
-
-
-
(advection dominated, no diffusion considered)
18Erosion on GPU- Multi-pass Implementation on GPU
- General computation framework on GPU Harris03,
Owens07 - To update a 2D array in parallel
-
- Multi-pass process
-
-
-
pack datainto textures
draw a screen-aligned quad
update texture in pixel shader
Simulation
(1) Water Increment
Outflow
(2) Flow Simulation
Water Height
Initialization
Visualization
Velocity
(3) Erosion-Deposition
VS Vertex Texture PS Phong Lighting
(4) Sediment transport
(5) Evaporation
19Results
- Platform Pentium IV 2.4GHz 2Gb RAM Nvidia
8800 GTX - 512x512 grids for video demos
-
-
-
water
suspended sediment in the flow
deposited sediment
Video
PG scene in the rain
20Results
- Deposited sediment in a basin
- The bottom of the basin is flattened by the
deposited sediment -
-
-
Video
21Results
- River flow in a drained channel
- Part of the original river bank get eroded
-
-
-
-
Video
22Results
- Mountain scene eroded by rainfall
-
-
-
-
-
Video
23Results
- Final example
- the combination of the rainfall and the river
source -
-
-
-
Video
24Results
- Performance results for the final example at
different grid size
-
-
-
-
1 cycle 1 simulation 1 visualization
Interactive frame rates for terrain up to
1024x1024!
25Results
- ST, VT, CT at different grid size
-
-
-
-
ST Simulation Time VT Visualization Time CT
Cycle Time ST VT 1. ST, VT, CT scales
well with grid size linear with of
cells 2. VT takes more time for large size
terrain 3. Further Improvements
26Conclusion Future Work
- A novel simulation method for hydraulic erosion
- Effective proper model selection and adaptation
for each step - Produces dynamic erosion process and realistic
results - Efficient - well designed for complete GPU
implementation - Interactive frame rates for large size terrain
- Future work
- Further improvements on models
- Fluid solver - Limitation for time step
- Erosion Model - Little erosion on flat terrain
- Extension to non-height-field scene
- (general 3D objects, structures with caves)
- More erosion process thermal weathering, wind
erosion
27- Thanks!
- More info on
- http//evasion.imag.fr/Publications/2007/MDH07/
28Erosion on GPU- Erosion Deposition
- For each cell
- sediment transport capacity
- related to two factors
- - local tilt angle
- - velocity
- Simplified formula
-
- Problem?
- Little erosion on flat terrain! (
approaches zero) - Possible solution
-
29Erosion on GPU- Data update
- Summary
- the data update in five steps
- (1) Water Increment water height
- (2) Water Movement water height, outflow flux,
velocity - (3) Erosion Deposition terrain height,
suspended sediment - (4) Sediment Transportation suspended sediment
- (5) Evaporation water height
-
-
-
-
-
30Results
- Performance results for the final example at
different grid size
-
-
-
-
ST Simulation Time in each cycle VT
Visualization Time in each cycle CT Cycle Time
ST VT
- Interactive frame rates for terrain up to
1024x1024 -
- ST,VT, CT scale well with the grid size
- VT takes most part of the time for large size
terrain - Improvements?
-