Download presentation
Presentation is loading. Please wait.
Published byGeorgia Miller Modified over 9 years ago
2
Clouds and You (mostly clouds) a Summary of “A Simple, Efficient, Method for Realistic Animation of Clouds” Paper by Yoshinori Dobashi, Kazufumi Kaneda, Hideo Yamashita, Tsuyoshi Okita, Tomoyuki Presentation by Nomolas Nairb 4/24/01
3
Goal ? Realtime? Realistic? No, but no need for render farms. No, but you wont know the difference. DUFF
4
Previous Work Eat at Joe’s
5
Previous Work Good ole Stam Foster and Metaxas Nagel, Nagel, Nagel Goodyear
6
Approach Extend Nagel’s method. –Cellular Automaton –0/1 variables per voxel Allow clouds to go away. Add shafts of light. Use clever rendering techniques (OpenGL). Go Cavs!
7
Cellular Automaton Nagel Style Voxels have 3 state variables and transition functions. –Hum - Does the voxel contain enough H20? –Cld - Is there cloud in the voxel? –Act - Is the transition from vapor to cloud ready to commence? All your base
8
Cellular Automaton Nagel Style Rules hum(i,j,k,t+1) = hum(i,j,k,t) && !act(i,j,k,t) cld(i,j,k,t+1) = cld(i,j,k,t) || act(i,j,k,t) act(i,j,k,t+1) = !act(i,j,k,t) && hum(i,j,k,t) && f(i,j,k,t) Brian Rules
9
Cellular Automaton Nagel Style f(i,j,k) = act(i+1,j,k,t) || act(i,j+1,k,t) || act(i,j,k+1,t) || act(i-1,j,k,t) || act(i,j-1,k,t) || act(i,j,k-1,t) || act(i-2,j,k,t) || act(i+2,j,k,t) || act(i,j-2,k,t) || act(i,j+2,k,t) || act(i,j,k-2,t)
10
Additional Rules Cloud extinction facilitated by: cld(i,j,k,t+1) = cld(i,j,k,t) && (rnd > p ext (i,j,k,t)) hum(i,j,k,t+1) = hum(i,j,k,t) || (rnd < p hum (i,j,k,t)) act(i,j,k,t+1) = act(i,j,k,t) || (rnd < p act (i,j,k,t)) Wang Chung Tonight
11
Wind v(z) gives wind velocity for each level of voxels. state(i,j,k,t + 1) = state(i-v(zk),j,k,t) Zzzzzz…..
12
Ellipsoids for Motion Control Use ellipsoids to represent “parcels” of air. Distribute the probabilities throughout the ellipsoids. Move the ellipsoids to move the clouds. How big? How many? Led Zeppelin
13
Rendering Create metaball textures Create the lightmap texture Render the clouds Rusty’s Burgers
14
Metaballs Smooth the voxels q(i,j,k,t) = Q* w(i’,j’,k’,y’) * cld(i+i’,j+j’,k+k’,t+t’) (x,t) = q(i,j,k,t)f(|x - x i,j,k |) t’=-t 0 k’=-k 0 j’=-j 0 i’=-i 0 t0t0 k0k0 j0j0 i0i0 i,j,k (x,R) N
15
Metaball Colors and Light Maps Turn off depth test. Sort the metaballs by distance from the sun. Render using parallel projection from the sun. Create a color for each metaball by multiplying the color at the center pixel by the sun color. Store the image as a light map for the terrain.
16
Hindenburg Rendering the Clouds Render everything else first Turn off the depth test Set each ball’s billboard to the color from the last step Render the billboards back to front.
17
Shafts of Light I = I c (T)+ (s)I s (s) (s)ds I c - the cloud color I s - scattered light - atmospheric attenuation - attenuation due to clouds discretized as: I = I c (T)+ (k s)I s (k s) (k s) s 0 T k=0 nsns
18
Light Shafts I = I c (T)+ (k s)I s (k s) (k s) s I c - the metaball color - fog like calculation I s - get this “analytically” - the light map
19
Results 256x256x20 cells 80kb storage 10-20 seconds per image Looking Good
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.