270 likes | 381 Views
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. Contents. Introduction and Motivation
E N D
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
Contents • Introduction and Motivation • Simulation • Rendering • Results • Conclusion
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
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
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 • Computationally expensive
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
Simulation – Basic Idea • Cellular automaton with binary states
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
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.
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
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
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)
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
Rendering – Basic Idea • Smoothing and volume rendering • Splatting method for clouds • Spherical shells for shafts of light
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
Metaball Billboards • Generate 2-D texture of metaballs
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
Rendering – Step 1 (cont‘d) • After all metaballs have been projected, framebuffer contains shadow texture
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
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
Conclusion • Advantages: • 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
The End Questions?