A Simple, Efficient Method for Realistic Animation of Clouds
-
Upload
hiroshi-miura -
Category
Documents
-
view
29 -
download
1
description
Transcript of A Simple, Efficient Method for Realistic Animation of Clouds
Cloud Animation
A Simple, Efficient Method for A Simple, Efficient Method for Realistic Animation of CloudsRealistic Animation of Clouds
Yoshinori DobashiYoshinori Dobashi((Hiroshima City UniversityHiroshima City University))
Kazufumi KanedaKazufumi Kaneda((Hiroshima UniversityHiroshima University))
Hideo YamashitaHideo Yamashita((Hiroshima UniversityHiroshima University))
Tsuyoshi OkitaTsuyoshi Okita((Hiroshima City UniversityHiroshima City University))
Tomoyuki NishitaTomoyuki Nishita((University of TokyoUniversity of Tokyo))
Cloud Animation
Typo:Typo: Incorrect Numbering of Reference
[1] D. Blythe, “Advanced …[2] Y. Dobashi, T. Nishita, …[1] Y. Dobashi, T. Nishita, …[2] Y. Dobashi, T. Nishita, …
[1] D. Blythe, “Advanced …[2] Y. Dobashi, T. Nishita, …[3] Y. Dobashi, T. Nishita, …[4] Y. Dobashi, T. Nishita, …
Incorrect
Correct
(Proceedings)
(CD-ROM)
Cloud Animation
IntroductionIntroduction
• Simulation of natural phenomena usingSimulation of natural phenomena using computer graphics computer graphics
• clouds• fire • ocean waves
examples:
• movies/commercial films • flight simulators• computer games
applications:
• Goal: Realistic animation of cloudsRealistic animation of clouds
Cloud Animation
IntroductionIntroduction
- complex motion
- easy to implement
- fast simulation of cloud motion
- photorealistic images
- fast image generation
Important elements for realisticImportant elements for realistic animation of clouds animation of clouds
Cloud Animation
IntroductionIntroduction
atmospheric effects (shafts of light)
Important elements for realistic renderingImportant elements for realistic rendering of cloudsof clouds
shadows
cloud color
Cloud Animation
Our method
Previous Work: Previous Work: Simulation of Cloud MotionSimulation of Cloud Motion
Numerical simulation [Kajiya84]
Simulation methods
Textured ellipsoids [Gardener85]
Diffusion process [Stam93,Stam95]
Fractal [Ebert97]
Qualitative simulation [Neyret97]
Particle system [Kikuchi98]
Stable fluids [Stam99]
motionImple-ment speed
Cloud Animation
Ray-tracing method e.g. [Kajiya84]
Rendering methods
2D texture mapping e.g. [Gardener85]
Scanline method [Ebert90]
3D texture mapping [Stam99]
Previous Work: Previous Work: Rendering of CloudsRendering of Clouds
colorsshafts of
light speedshadows
Cloud Animation
Our method
Ray-tracing method e.g. [Kajiya84]
Rendering methods
2D texture mapping e.g. [Gardener85]
Scanline method [Ebert90]
3D texture mapping [Stam99]
Previous Work: Previous Work: Rendering of CloudsRendering of Clouds
colorsshafts of
light speedshadows
Cloud Animation
Proposed MethodProposed Method• Simulation processSimulation process
• Rendering processRendering process
- complex cloud motion
- hardware-accelerated
- 3D cellular automaton
- small amount of computation
- cloud color taken into account single scattering model- shadows on the ground- shafts of light through clouds
Cloud Animation
time timeti ti+1
Simulation ProcessSimulation Process
• Voxels correspond to cells
Basic ideaBasic idea
there is enough vapor.‘hum’:phase transition is ready to occur.‘act’:
clouds exist or not.‘cld’:
• Three logical variables at each cell
act :activationhum:humidity
cld :cloud
Cloud Animation
time timeti ti+1
Simulation ProcessSimulation ProcessBasic ideaBasic idea
act :activationhum:humidity
cld :cloud
• Status of variables: 0 or 1
• Simple transition rules by Boolean operations- cloud growth- cloud extinction- advection by wind
Cloud Animation
Growth SimulationGrowth Simulation [Nagel’92][Nagel’92]
Water vapor becomes water droplets (clouds) due to phase transition.
Cloud formation process:
phase transition effects
propagation of activationvariables(cloud growth)
time ti time ti+1
hum
cld
act
cld=0act=0 hum=0cld=1act=1 hum=1
x yz
x yz
act: activationhum: humiditycld: cloud
• cloud extinction never occurs• complex motion cannot be realized
Disadvantages
Cloud Animation
State transition of a cell:
humid active/humid cloud
Realizing Complex Motion
supply ‘hum’ & ‘act ‘
empty
cld=0act=0 hum=0cld=1act=1 hum=1
Formation and extinction occur repeatedly.
Cloud Animation
1 humid area (spheres/elipsoids in 3D)
2 change ‘hum’ & ‘act’ from 0 to 1
Realizing Complex Motion
Cloud Animation
Realizing Complex MotionRealizing Complex Motion
3 clouds are formed
4 change ‘cld’ from 1 to 0
Controlling red area
Controlling cloud shapes & motion
1 humid area (spheres/elipsoids in 3D)
2 change ‘hum’ & ‘act’ from 0 to 1
Cloud Animation
Advection by WindAdvection by Wind• Clouds move in one direction, blown by wind.
cld hum act
wind direction
• Shifting all variables following the wind direction.
Cloud Animation
Rendering ProcessRendering ProcessBasic ideaBasic idea
0 or 1
filtering
1 Calculating density distribution
continuous
volumerendering
2 Rendering clouds
3 Rendering shafts of light through clouds
image
Cloud Animation
R
q
effective radius
center density
metaball
field function
Create continuous distribution using metaballsCreate continuous distribution using metaballs
Calculation of Density DistributionCalculation of Density Distribution
• center density: filtered value
metaball
• radius: specified by user ( cell width x 1.5 in our case)
Cloud Animation
Rendering CloudsColor of clouds (single scattering only)
viewpoint
backgroundcolor
sunlight
clouds
Splatting method using billboard technique
scattered light
Cloud Animation
2 clouds viewed from the viewpoint
1 calculate intensity reaching each metaball1 calculate intensity reaching each metaball
billboard
Rendering CloudsRendering Clouds
Calculation stepsCalculation stepsmetaball
PreprocessPreprocess
virtual plane(billboard)
compute billboard texture
2 clouds viewed from the viewpoint
Cloud Animation
2 Assume a ray passing through each mesh element2 Assume a ray passing through each mesh element
4 Store the values as billboard texture
3 Compute cumulative density and attenuation ratio
1 Divide billboard into mesh
billboard metaball
Preprocess: Computing Billboard Texture
1 Divide billboard into mesh
4 Store the values as billboard texture
3 Compute cumulative density and attenuation ratio
• cumulative density• attenuation ratio
Cloud Animation
Step 1: Light Reaching at Each MetaballStep 1: Light Reaching at Each Metaball
frame buffer
metaball
sun1 Set camera at the sun, parallel projection
2 Sort metaballs
3 Place billboards
4 Initialize frame buffer
1 Set camera at the sun, parallel projection
1
2
3
45
2 Sort metaballs
billboard
3 Place billboards
Initialized to 1.0
4 Initialize frame buffer
5 Project billboards5 Project billboards
Cloud Animation
Step 1: Light Reaching at Each MetaballStep 1: Light Reaching at Each Metaball
sun5 Project billboards
6 Store shadow texture1
2
3
45
projection
• multiply attenuation• read pixel value
multiply attenuation
• multiply attenuation• read pixel value
readintensity
attenuation,sun metaball 1
Cloud Animation
Step 1: Light Reaching at Each MetaballStep 1: Light Reaching at Each Metaball
sun5 Project billboards
6 Store shadow texture1
2
3
45
• multiply attenuation• read pixel value
6 Store shadow texture
attenuation,sun ground
Cloud Animation
Step 2: Clouds Viewed from ViewpointStep 2: Clouds Viewed from Viewpoint
framebuffer
metaball
viewpoint
1 Render background
2 Sort metaballs
3 Rotate billboards
render background1 Render background
1
2
3
4
5
2 Sort metaballs
3 Rotate billboards
4 Project billboards
Cloud Animation
Step 2: Clouds Viewed from ViewpointStep 2: Clouds Viewed from Viewpoint
metaball
viewpoint
1
2
3
4
54 Project billboards
projection• multiply attenuation• add color •multiply attenuation
•add billboard color•attenuate background•add cloud colors
1 Render background
2 Sort metaballs
3 Rotate billboards
Cloud Animation
Step 2: Clouds Viewed from ViewpointStep 2: Clouds Viewed from Viewpoint
viewpoint
4 Project billboards• multiply attenuation• add color
1 Render background
2 Sort metaballs
3 Rotate billboards3
4
5 1
2
rendered image
Cloud Animation
Rendering Shafts of LightRendering Shafts of Light
Ieye= dtIs )(t
Isun )(t' )(t'Is = )(F
Intensity at viewpointIntensity at viewpoint
t
Is
sun S
clouds
PV
t': attenuation, atmosphere
: attenuation, clouds
: phase functionF
, F are obtainedanalytically
Isun
: attenuation, atmosphere
: attenuation, clouds
: phase functionF
Cloud Animation
Rendering Shafts of LightRendering Shafts of Light
Ieye= dtIs )(t
Isun )(t' )(t'Is = )(F
Intensity at viewpointIntensity at viewpoint
t
Is
sun S
clouds
PV
t': attenuation, atmosphere
: attenuation, clouds
: phase functionF
, F are obtainedanalytically
sample points
ray-tracing
Isun
: attenuation, atmosphere
: attenuation, clouds
: phase functionF
time-consuming
Cloud Animation
1 . Place spherical shells
)(t'sun S
clouds
2 . Compute Isun(t’)F() (t)
3 . Map shadow texture
4 . Draw shells with additive blending
Rendering Shafts of LightRendering Shafts of Light
Ieye=
Is =
dtIs )(t
Isun )(t' )(F
V
Cloud Animation
)(t'sun S
clouds
2 . Compute Isun(t’)F() (t)
3 . Map shadow texture
4 . Draw shells with additive blending
Rendering Shafts of LightRendering Shafts of Light
Ieye=
Is =
dtIs )(t
Isun )(t' )(F
V
spherical shells
1 . Place spherical shells
vertices
Cloud Animation
)(t'sun S
clouds
2 . Compute Isun(t’)F() (t)
3 . Map shadow texture
4 . Draw shells with additive blending
Rendering Shafts of LightRendering Shafts of Light
Ieye=
Is =
dtIs )(t
Isun )(t' )(F
V
spherical shells
1 . Place spherical shells
shadow texture
Cloud Animation
)(t'sun S
clouds
2 . Compute Isun(t’)F() (t)
3 . Map shadow texture
4 . Draw shells with additive blending
Rendering Shafts of LightRendering Shafts of Light
Ieye=
Is =
dtIs )(t
Isun )(t' )(F
V
spherical shells
1 . Place spherical shells
shadow texturetexture mapping
Cloud Animation
)(t'sun S
clouds
2 . Compute Isun(t’)F() (t)
3 . Map shadow texture
4 . Draw shells with additive blending
Rendering Shafts of LightRendering Shafts of Light
Ieye=
Is =
dtIs )(t
Isun )(t' )(F
V
spherical shells
1 . Place spherical shells
shadow texturetexture mapping
Cloud Animation
ExamplesExamples
(PentiumIII 733Mhz, NVIDIA GeForce256)voxel size: 256x256x10 image size: 640x480
rendering: rendering: 10 [sec]10 [sec]simulation: simulation: 0.3 [sec]0.3 [sec]
Cloud Animation
shafts of light (daytime) shafts of light (evening)
ExamplesExamples
rendering: rendering: 15 [sec]15 [sec]
(PentiumIII 733Mhz, NVIDIA GeForce256)voxel size: 256x256x20 image size: 640x480
simulation: simulation: 0.5 [sec]0.5 [sec]
Cloud Animation
Example Animation (Video)Example Animation (Video)
Cloud Animation
- complex motion
ConclusionConclusion
- two-pass method using billboards for colors and shadows
- fast simulation by Boolean operations
- easy implementation
- uses graphics hardware
Simulation using 3D cellular automatonSimulation using 3D cellular automaton
Realistic rendering of cloudsRealistic rendering of clouds
- virtual spherical shells for shafts of light
Cloud Animation
Future WorkFuture Work
Further acceleration for real-time Further acceleration for real-time animationanimation
Creating various kinds of cloudsCreating various kinds of clouds
- use of LOD techniques
- hierachical representation of voxels
- taking into account effects under terrain
- handling multiple wind direction, wind field