270 likes | 391 Vues
This paper presents a novel method for the realistic simulation and rendering of cumulus-type clouds. The approach utilizes a cellular automaton based on Nagel's method to efficiently model cloud formation, extinction, and advection influenced by wind. It focuses on creating visually convincing cloud effects, including color, shadows, and shafts of light, while maintaining low computational costs. By employing hardware-accelerated rendering techniques and leveraging continuous density distribution, the method provides quick and effective cloud animation suitable for real-time applications.
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?