Download presentation
1
A Simple, Efficient Method for Realistic Animation of Clouds
Yoshinori Dobashi* Kazufumi Kaneda** Hideo Yamashita** Tsuyoshi Okita* Tomoyuki Nishita*** *Hiroshima City University **Hiroshima University ***University of Tokyo
2
Contents Introduction and Motivation Simulation Rendering Results
Conclusion
3
Introduction
4
Problem Overview Realistic modeling and animation of (cumulus-type) clouds Two sub-problems: Simulation of cloud formation, extinction and advection by wind Rendering of the clouds, shadows and shafts of light
5
Previous Work - Simulation
Two categories of simulation methods: Physical process of fluid dynamics Very accurate Computationally expensive Heuristic approach (procedural modeling) Computationally inexpensive Easier to implement Parameters needed
6
Previous Work - Rendering
Accounting for multiple scattering of light Computationally expensive Using 3-D textures for volume density Does not handle atmospheric effects such as shafts of light Rendering shafts of light using ray-tracing or a similar method
7
Goals Simple and efficient simulation method
Support of effects such as ... Cloud color by single scattering of light Shadows of clouds cast on the ground Shafts of light through clouds Hardware-accelerated rendering Visually convincing result
8
Simulation – Basic Idea
Cellular automaton with binary states
9
Nagel‘s Method Water vapor turns to water to form clouds
Use Nagel‘s method to simulate cloud formation: Divide 3-D space evenly into 3-D cells Assign boolean variables to each cell: cld indicates whether cell contain clouds hum indicates whether cell has enough water vapor to form clouds act indicates whether phase transition is ready to occur
10
Nagel‘s Method (cont‘d)
Cell properties in the current animation frame ti are used to compute the cell properties in the next frame ti+1: hum(x, y, z, ti+1) = hum(x, y, z, ti) Ù Øact(x, y, z, ti) cld(x, y, z, ti+1) = cld(x, y, z, ti) Ú act(x, y, z, ti) act(x, y, z, ti+1) = Øact(x, y, z, ti) Ù hum(x, y, z, ti) Ù ¦act(x, y, z , ti) ¦act is a boolean function and its value is calculated by the status of act in the surrounding cells.
11
Cloud Extinction Extension to Nagel‘s method:
cld(x, y, z, ti+1) = cld(x, y, z, ti) Ù IS(rnd > pext(x, y, z, ti)) hum(x, y, z, ti+1) = hum(x, y, z, ti) Ú IS(rnd < phum(x, y, z, ti)) act(x, y, z, ti+1) = act(x, y, z, ti) Ú IS(rnd < pact(x, y, z, ti)) rnd : uniform random number pext : probability of cloud extinction phum : probability of vapor forming pact : probability of phase transition occurence
12
Advection by Wind Clouds move, blown by winds
Wind velocity is different depending on the height from the ground cld(x, y, z, ti+1) = cld(x – v(z), y, z, ti) hum(x, y, z, ti+1) = hum(x – v(z), y, z, ti) act(x, y, z, ti+1) = act(x – v(z), y, z, ti) v(z) : wind velocity, piecewise linear function Assumption: wind blows towards the direction of x-axis
13
Controlling Cloud Motion
Ellipsoids simulate air parcels Vapor and phase transition probability: higher at center / lower at edge Cloud extinction probability: Lower at center / higher at edge Ellipsoids move in direction of wind Different kinds of clouds by controlling ellipsoid parameters (sizes and position)
14
Fast Simulation using Bitfields
Each cell state (cld, act, hum) can be stored in a single bit Low memory requirements Fast computation of simulation process Problem: Random numbers Solution: Precalculated look-up tables
15
Rendering – Basic Idea Smoothing and volume rendering
Splatting method for clouds Spherical shells for shafts of light
16
Continuous Density Distribution Calculation
Simulation output is a binary distribution Continuous density distribution results from smoothing the binary distribution Cloud density of a cell is the weighted average of the surrounding cells Each cell contributes a density distribution over an effective radius (Metaballs) Cloud density of an arbitrary point is therefore a weighted sum of a simple basis function
17
Metaball Billboards Generate 2-D texture of metaballs
18
Rendering - Step 1 Set up parallel projection with sun at viewpoint and initialize framebuffer to 1.0 Place billboards at centers of metaballs with their normals toward the sun Starting with billboard closest to the sun, project and blend billboards to framebuffer Read back value at projected billboard center to get attenuation ratio between sun and metaball
19
Rendering – Step 1 (cont‘d)
After all metaballs have been projected, framebuffer contains shadow texture
20
Rendering – Step 2 Render all world objects except clouds
Place billboards at centers of metaballs with their normals toward the observer Project and blend billboards to framebuffer starting with those farthest from viewpoint
21
Rendering – Step 2 (cont‘d)
22
Shafts of Light Render using spherical shells (made of polygons)
Modify Rendering – Step 2 to: Calculate colors of vertices of shell polygons (atmospheric conditions) Repeat for all shells (back-to-front): Render shell k with additive blending function and shadow texture mapping Render billboards between shell k-1 and shell k
23
Shafts of Light (cont‘d)
24
Results
25
Results (cont‘d)
26
Conclusion Advantages: Possible improvements:
Simulation requires little computation Memory requirements are small Rendering is fast by making use of graphics hardware Shadows of clouds and shafts of light can also be rendered Possible improvements: Effects of terrain under clouds Level of detail
27
The End Questions?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.