a fast simulation method using overlapping grids for interactions between smoke and rigid objects...
TRANSCRIPT
A Fast Simulation Method Using Overlapping Grids for Interactions between Smoke and Rigid Objects
A Fast Simulation Method Using Overlapping Grids for Interactions between Smoke and Rigid Objects
Yoshinori DobashiYoshinori Dobashi(Hokkaido University)(Hokkaido University)
Tsuyoshi YamamotoTsuyoshi Yamamoto(Hokkaido University)(Hokkaido University)
Tomoyuki NishitaTomoyuki Nishita(The University of Tokyo)(The University of Tokyo)
Yasuhiro MatsudaYasuhiro Matsuda(The University of Tokyo)(The University of Tokyo)
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Overview
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Overview
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Introduction
• Visual Simulation of Natural Phenomena• Visual Simulation of Natural Phenomena
- Use of computational fluid dynamics (CFD)- Use of computational fluid dynamics (CFD)
- Fluids (smoke, fire, water, etc.)- Fluids (smoke, fire, water, etc.)
• Two types of approaches• Two types of approaches
particle basedparticle basedgrid basedgrid based
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Introduction
• Grid-based approach• Grid-based approach- Simple and easy to implement- Simple and easy to implement
- Significant acceleration by GPU- Significant acceleration by GPU
terrain
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Introduction
- Simple and easy to implement- Simple and easy to implement
- Significant acceleration by GPU- Significant acceleration by GPU
- Inaccurate object boundary with low res. grid- Inaccurate object boundary with low res. grid
terrain
• Grid-based approach• Grid-based approach
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Introduction
- Simple and easy to implement- Simple and easy to implement
- Significant acceleration by GPU- Significant acceleration by GPU
- Increase in computational cost with high res. grid- Increase in computational cost with high res. grid
terrain
- Inaccurate object boundary with low res. grid- Inaccurate object boundary with low res. grid
• Grid-based approach• Grid-based approach
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Introduction
• Adaptive grid• Adaptive grid- Accurate object boundary- Accurate object boundary
- Increase efficiency- Increase efficiency
- Requiring restructuring of grid/mesh - Requiring restructuring of grid/mesh
terrain
- Unsuitable for GPU acceleration - Unsuitable for GPU acceleration
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Introduction
• Our approach: multiple overlapping grids• Our approach: multiple overlapping grids- High res. grid for accurate object boundary- High res. grid for accurate object boundary
- No restructuring of grid- No restructuring of grid
- Simple and easy to implement- Simple and easy to implement
- Suitable for GPU acceleration- Suitable for GPU acceleration
terrain
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Introduction
terrain
local gridlocal grid
global gridglobal grid
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Overview
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Related Work• Motion of a Hot, Turbulent Gas• Motion of a Hot, Turbulent Gas [Foster97][Foster97]
- Motion of smoke due to thermal buoyancy- Use of finite difference method- Motion of smoke due to thermal buoyancy- Use of finite difference method
[Stam99][Stam99]• Stable Fluids• Stable Fluids- Fast and stable computation- Use of semi-Lagrange method- Fast and stable computation- Use of semi-Lagrange method
• Extended methods of stable fluids• Extended methods of stable fluids
[Fedkiw01][Fedkiw01] [Enright02][Enright02] [Nguyen02][Nguyen02] [Feldman03][Feldman03] [Carlson04][Carlson04]
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Related Work
- Motion of smoke due to thermal buoyancy- Use of finite difference method- Motion of smoke due to thermal buoyancy- Use of finite difference method
[Stam99][Stam99]• Stable Fluids• Stable Fluids- Fast and stable computation- Use of semi-Lagrange method- Fast and stable computation- Use of semi-Lagrange method
• Extended methods of stable fluids• Extended methods of stable fluids
[Fedkiw01][Fedkiw01] [Enright02][Enright02] [Nguyen02][Nguyen02] [Feldman03][Feldman03] [Carlson04][Carlson04]
Use of single gridUse of single grid- Increase in computational cost according to number of grid points- Increase in computational cost according to number of grid points
- Inaccurate object boundary- Inaccurate object boundary
• Motion of a Hot, Turbulent Gas• Motion of a Hot, Turbulent Gas [Foster97][Foster97]
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Related Work
- Use of octree data structure- Use of octree data structure
- Combination of tetrahedral mesh and regular grid- Combination of tetrahedral mesh and regular grid
• Adaptive grid/mesh• Adaptive grid/mesh
- Use of tetrahedral mesh- Use of tetrahedral mesh
[Feldman05][Feldman05] [Feldman06][Feldman06][Losasso04][Losasso04]
[Losasso04][Losasso04]
[Feldman05][Feldman05]
[Feldman06][Feldman06]
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Related Work
- Use of octree data structure- Use of octree data structure
- Combination of tetrahedral mesh and regular grid- Combination of tetrahedral mesh and regular grid
• Adaptive grid/mesh• Adaptive grid/mesh
[Feldman05][Feldman05] [Feldman06][Feldman06][Losasso04][Losasso04]- Unsuitable for GPU acceleration- Unsuitable for GPU acceleration
- Restructuring of grid/mesh- Restructuring of grid/mesh
- Efficient computation- Efficient computation
- Accurate object boundary- Accurate object boundary
- Use of tetrahedral mesh- Use of tetrahedral mesh
[Losasso04][Losasso04]
[Feldman05][Feldman05]
[Feldman06][Feldman06]
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Overview
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Basic Idea of Our Method
• Use of multiple overlapping grids• Use of multiple overlapping grids
global grid
viewpoint
objectB
local grids
objectA
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Basic Idea of Our Method
• Use of multiple overlapping grids• Use of multiple overlapping grids
translate/rotate No remeshing
object
Aob
ject
A
objectBobject
A
global grid
viewpoint
local grids
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Basic Idea of Our Method
• Use of multiple overlapping grids• Use of multiple overlapping grids
objectB
obje
ctA
objectA
object
A
local grids
global grid
viewpoint
resolution is inversely proportionalto dist. from viewpoint
obje
ct A
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Basic Idea of Our Method
• Use of multiple overlapping grids• Use of multiple overlapping grids
object A
Use of stable fluid solver[Stam99] for each grid
objectB
data transferdata transfer
global gridviewpoint
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Overview
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Governing Equations
• Navier-Stokes Equations (NS equations)• Navier-Stokes Equations (NS equations)
u : velocity p : pressure
: density
: kinematic viscosity
f : external force
0u fuuuu
21
)(
pt
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Governing Equations
object direction ofmovement
• Navier-Stokes Equations (NS equations)• Navier-Stokes Equations (NS equations)
inertial force
u : velocity p : pressure
: density
: kinematic viscosity
f : external force
0u fuuuu
21
)(
pt
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Governing Equations
• Numerical solution to NS equations• Numerical solution to NS equations
)(tu
u~ fuuuuu )()()()(~ 2 ttttt
fuuuu
21
)(
pt
0u
(step1)
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
)(tu
u~
Governing Equations
• Numerical solution to NS equation• Numerical solution to NS equation
)(tu
u~ fuuuuu )()()()(~ 2 ttttt
fuuuu
21
)(
pt
pρ
ttt
uu ~)(
0u
Gauss-Seidel method
)( tt u
(step1)
(step2)
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Simulation Using Overlapping Grids
yes
noconverged ?
)(tu
u~
u~
)( tt u
start
end
boundary transferof velocity
boundary transferof pressure
inner transferof velocity
inner transferof pressure
computationof velocity
computationof pressure
(step1) (step2)
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
(step1) (step2)
Simulation Using Overlapping Grids
)(tu
u~
u~
)( tt u
yes
noconverged ?
start
end
computationof velocity
computationof pressure
boundary transferof velocity
boundary transferof pressure
inner transferof velocity
inner transferof pressure
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
boundaryregion
Data transfer between Grids
• Case of single local grid• Case of single local grid
local grid
global grid
inner region
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Data transfer between Grids
• Boundary transfer• Boundary transfer
local grid
global grid
(global to local)
boundaryregion
copy values
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Data transfer between Grids
• Inner transfer• Inner transfer
local grid
global grid
(local to global)
copy values
inner region
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Data transfer between Grids
• Case of multiple local grids• Case of multiple local grids
object
object
object
objectobject
object
object
object
objectcopy
virtual grid(highest res.)
virtual grid(highest res.)
transfertransfer transfertransfer
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Data transfer between Grids
• Case of multiple local grids• Case of multiple local grids
object
object
object
objectobject
object
object
object
objectcopy
virtual grid(highest res.)
virtual grid(highest res.)
transfertransfer transfertransfer
Large memory requirement for virtual gridLarge memory requirement for virtual grid
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Data transfer between Grids
• Case of multiple local grids• Case of multiple local grids
object
object
object
transfer
transfer
transfer
transfer
transfer
• Prioritization by the grid resolutions• Priorities used for the order of the transfer• Prioritization by the grid resolutions• Priorities used for the order of the transfer
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Overview
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Resolution Determination
viewpoint
• Increasing efficiency by LOD• Increasing efficiency by LOD
object
low res. grid
far
object
high res. grid
near
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Resolution Determination
viewpoint
• Increasing efficiency by LOD• Increasing efficiency by LOD
object
low res. grid
far
object
high res. grid
near
object object object
grids with different resolutionsgrids with different resolutions
simple flow
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
object
low res. grid
Resolution Determination
viewpoint
• Increasing efficiency by LOD• Increasing efficiency by LOD
object
low res. grid
far
near
object object object
grids with different resolutionsgrids with different resolutions
simple flow
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Resolution Determination
Re = UL
U : mean flow speedU : mean flow speedL : characteristic lengthL : characteristic length : kinematic viscosity : kinematic viscosity
characteristiclength
(longer edge)
characteristiclength
(longer edge) (mean speed)(mean speed)
• Use of Reynolds number as a measure of
complexity of flow
• Use of Reynolds number as a measure of
complexity of flow
windobject
Large Re Turbulent flow (complex flow)
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Resolution Determination
• Mean flow speed / Characteristic length• Mean flow speed / Characteristic length
direction ofmovement
object
mean flow speed = speed of objectmean flow speed = speed of object
characteristic lengthcharacteristic length
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Re
dh
Resolution Determination
• Condition for resolution determination• Condition for resolution determination
distance from viewpointdistance from viewpoint
grid intervalgrid interval
• grid interval distance from viewpoint∝• grid interval distance from viewpoint∝
• grid interval 1/(Reynolds number)∝• grid interval 1/(Reynolds number)∝
thresholdthreshold
Reynolds numberReynolds number
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Overview
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
GPU Acceleration
• Use of previous method for NS solver• Use of previous method for NS solver
• Render-to-texture for data transfer• Render-to-texture for data transfer
grid ghigh grid glow3D texture
[Crane07][Crane07]
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
GPU Acceleration
• Boundary transfer• Boundary transfer- generate rectangles for boundary regions- generate rectangles for boundary regions
grid ghigh grid glow3D texture
rectangles
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
GPU Acceleration
• Boundary transfer• Boundary transfer- generate rectangles for boundary regions- generate rectangles for boundary regions
grid ghigh grid glow
texturemapping
3D texture
rectangles
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
GPU Acceleration
• Boundary transfer• Boundary transfer- generate rectangles for boundary regions- generate rectangles for boundary regions
grid ghigh grid glow
texturemapping
3D texture
- render rectangles into 3D texture of ghigh- render rectangles into 3D texture of ghighrectangles
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
GPU Acceleration
• Inner transfer• Inner transfer- generate rectangles for inner regions- generate rectangles for inner regions
grid ghigh grid glow
texturemapping
3D texture
- render rectangles into 3D texture of glow- render rectangles into 3D texture of glow
rectanglesRealizing fast data transfers just by
drawing rectangles
Realizing fast data transfers just by
drawing rectangles
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Overview
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
• Introduction• Related Work• Basic Idea of Our Method• Overlapping Grids for Fluid Simulation• Resolution Determination• GPU Acceleration• Results• Conclusion
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Experimental Results
• 2D simulation on CPU• 2D simulation on CPU
global only(150x300)
global only(300x600)
overlapping(100x100+150x300)
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Experimental Results
• 2D simulation on CPU• 2D simulation on CPU
0.5s 0.18s0.07s
global only(150x300)
global only(300x600)
overlapping(100x100+150x300)
computation times/time-step
2.8 times faster computation
(CPU: Pentium4 3.8 GHz)
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Experimental Results
reference our method
• Experiment using 3D simulation on CPU• Experiment using 3D simulation on CPU
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Practical Examples
• Real-time 2D simulation on GPU• Real-time 2D simulation on GPU
- global grid: 5122- global grid: 5122
- local grid: 1282
(for each letter)- local grid: 1282
(for each letter)
- computation time: 28 fps on GeForce8800 ultra
- computation time: 28 fps on GeForce8800 ultra
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Practical Examples
• Real-time 3D simulation on GPU• Real-time 3D simulation on GPU
- global grid: 41x59x25- global grid: 41x59x25
- local grid: 1283
(for a fighter)- local grid: 1283
(for a fighter)
- computation time: 10 fps on GeForce8800 ultra
- computation time: 10 fps on GeForce8800 ultra
(0.14 fps on CPU)(0.14 fps on CPU)
(71 times faster !)
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Practical Examples
• Dynamic smoke from fighter planes• Dynamic smoke from fighter planes
fighterfighter missilemissile
Hokkaido University http://nis-ei.eng.hokudai.ac.jp/~doba
Conclusion
• Efficient simulation using overlapping grids• Efficient simulation using overlapping grids
- Single global grid + multiple local grids around moving objects - Single global grid + multiple local grids around moving objects
- Rotating/translating local grids move according to motion of objects- Rotating/translating local grids move according to motion of objects
- Adaptive resolution determination of local grids- Adaptive resolution determination of local grids
- Significant speedup achieved by GPU- Significant speedup achieved by GPU