520 likes | 670 Views
Interactive Rendering of Atmospheric Scattering Effects Using Graphics Hardware. Hokkaido University. Yoshinori Dobashi. Tsuyoshi Yamamoto. Hokkaido University. Tomoyuki Nishita. Tokyo University. Overview. Introduction. motivation previous work. Rendering Light Beams. basic Idea
E N D
Interactive Rendering of Atmospheric Scattering Effects Using Graphics Hardware Hokkaido University Yoshinori Dobashi Tsuyoshi Yamamoto Hokkaido University Tomoyuki Nishita Tokyo University
Overview • Introduction • motivation • previous work • Rendering Light Beams • basic Idea • problems • high quality rendering • Rendering the Earth’s Atmosphere • rendering sky • rendering the earth viewed from space • Results • Conclusion
Introduction • motivation • previous work • Rendering Light Beams • basic Idea • problems • high quality rendering • Rendering the Earth’s Atmosphere • rendering sky • rendering the earth viewed from space Overview • Introduction • motivation • previous work • Rendering Light Beams • basic Idea • problems • high quality rendering • Rendering the Earth’s Atmosphere • rendering sky • rendering the earth viewed from space • Results • Results • Conclusion • Conclusion
Overview • Introduction • motivation • previous work • Rendering Light Beams • basic Idea • problems • high quality rendering • Rendering the Earth’s Atmosphere • rendering sky • rendering the earth viewed from space • Results • Conclusion
Motivation • Real-time rendering of realistic images • Atmospheric Scattering Effects • scattering and absorption of light due to small particles • spotlights • sunlight through windows • earth’s atmosphere requires long computation time • Our Goal: Real-time rendering of atmospheric effects
Volume rendering [e.g. Behrens98, Westermann98] edges ofspotlight edges ofshadows Previous Work • use of voxels to store the intensity of light • consuming texture memory for volume data • difficult to capture the edges of shafts of light
2D texture based approach [Dobashi01, Everitt99] • Interleaved sampling [Keller01] Previous Work • use of shadow and projective texture mapping • artifacts due to sampling errors • a general and efficient solution to the sampling problem • not optimal for rendering atmospheric scattering • Earth’s atmosphere • no methods for real-time rendering of realistic images
Proposed Method • Precise and efficient rendering of atmospheric effects • Rendering light beams • point/infinite light sources • uniform density of atmospheric particles • Rendering earth’s atmosphere • sky • the earth viewed from space • density decreases exponentially according to the height from the ground
Overview • Introduction • motivation • previous work • Rendering Light Beams • basic Idea • problems • high quality rendering • Rendering the Earth’s Atmosphere • rendering sky • rendering the earth viewed from space • Results • Conclusion
scattered light T ò l = l l I ( ) I ( t , ) H ( t ) g ( t , ) dt s l 0 Shading Model for Light Beams Intensity at viewpoint point source Ieye viewpoint
Il H ( t ) :intensity of light l I ( t , ) l :visibility function t P :attenuation function l g ( t , ) T ò l = l l I ( ) I ( t , ) H ( t ) g ( t , ) dt s l 0 Shading Model for Light Beams Intensity at viewpoint point light Is viewpoint
n å = = k 1 H ( t ) point light l I ( t , ) l l g ( t , ) viewpoint sampling plane T ò l = l l I ( ) I ( t , ) H ( t ) g ( t , ) dt screen s l 0 Basic Idea [Dobashi00] Intensity at viewpoint computed at lattices
light map H ( t ) light map point light l I ( t , ) l texture mapping l g ( t , ) viewpoint T ò l = l l I ( ) I ( t , ) H ( t ) g ( t , ) dt s l 0 Basic Idea [Dobashi00] Intensity at viewpoint n å = = k 1
H ( t ) object point light l I ( t , ) l shadow mapping l g ( t , ) viewpoint T ò l = l l I ( ) I ( t , ) H ( t ) g ( t , ) dt s l 0 Basic Idea [Dobashi00] Intensity at viewpoint n å = = k 1
H ( t ) point light l I ( t , ) l l g ( t , ) viewpoint T ò l = l l I ( ) I ( t , ) H ( t ) g ( t , ) dt s l 0 Basic Idea [Dobashi00] Intensity at viewpoint n å = = k 1 object shadow mapping render sampling planes with additive blending
number of planes number of lattice points • Accuracy pseudo-contours µ sampling errors number of planes number of lattice points µ • rendering time Problems • Many planes/lattices for high quality image • artifacts due to quantization errors • quantization with 8 bit precision in most hardware • accumulation of errors in proportion to number of sampling planes • increase in rendering time
point light Il n å = t = k 1 P l DI ( t , ) s Dt Is + D t t ò k D l = l l I ( t , ) I ( t , ) H ( t ) g ( t , ) dt s k l t k T ò l = l l I ( ) I ( t , ) H ( t ) g ( t , ) dt s l 0 High Quality Rendering Intensity at viewpoint
n å = = k 1 l DI ( t , ) s + D t t ò k D l = l l I ( t , ) I ( t , ) H ( t ) g ( t , ) dt s k l t k changes severely changes smoothly const. in Dt T ò l = l l I ( ) I ( t , ) H ( t ) g ( t , ) dt s l 0 High Quality Rendering point light Intensity at viewpoint Il t P Dt Is
n å = = k 1 l DI ( t , ) s + D t t ò k D l = l l I ( t , ) I ( t , ) H ( t ) g ( t , ) dt s k l + D + D t t t t t ò ò k k k » l l x I ( t , ) H ( t ) dt g ( t , ) dt l t t k k fh fl T ò l = l l I ( ) I ( t , ) H ( t ) g ( t , ) dt s l 0 High Quality Rendering point light Intensity at viewpoint Il t P Dt Is
n å = = k 1 l DI ( t , ) s scattered light + D t t ò k D l = l l I ( t , ) I ( t , ) H ( t ) g ( t , ) dt s k l + D + D t t t t t ò ò k k k » l l x I ( t , ) H ( t ) dt g ( t , ) dt l t t k k fh fl T ò l = l l I ( ) I ( t , ) H ( t ) g ( t , ) dt s l 0 High Quality Rendering point light Intensity at viewpoint = 1.0 Il Is scattering component
object n å = = k 1 l DI ( t , ) s + D t t ò k D l = l l I ( t , ) I ( t , ) H ( t ) g ( t , ) dt s k l + D + D t t t t t ò ò k k k » l l x I ( t , ) H ( t ) dt g ( t , ) dt l t t k k fh fl T ò l = l l I ( ) I ( t , ) H ( t ) g ( t , ) dt s l 0 High Quality Rendering point light Intensity at viewpoint Il ratio of reached light Is Illumination component scattering component
Scattering component fl: + D t t ò k l I ( t , ) H ( t ) dt l t k + D t t ò k l g ( t , ) dt t k • Illumination component fh: High Quality Rendering • changes smoothly • can be sampled at a large interval use of texture to store pre-integrated values • includes visibility H and intensity distribution Il • must be sampled at a short interval sub-planes for accurate sampling
Scattering component fl: + D t t ò k l I ( t , ) H ( t ) dt l t k + D t t ò k l g ( t , ) dt t k • Illumination component fh: High Quality Rendering • changes smoothly • can be sampled at a large interval use of texture to store pre-integrated values • includes visibility H and intensity distribution Il • must be sampled at a short interval sub-planes for accurate sampling
- br + + D t t exp( ( s t )) ò k c l = r a l f ( t , ) F ( , ) dt l k c 2 s t k point light rc :density b :attenuation ratio sampling plane k+1 :distance between viewpoint and P tk sampling plane k s F ( ) a, l s :distance between light and P’ t :distance between viewpoint and P’ t a tk :phase function P’ viewpoint P a :phase angle Dt Textures for Scattering Component (point light)
- br + + D t t exp( ( s t )) ò k c l = r a l f ( t , ) F ( , ) dt l k c 2 s t k U Q = - + t u ' u t k V a = - cos u ' / s 2 2 2 = + s u ' v Textures for Scattering Component (point light) point light • local coordinate UV sampling plane k+1 sampling plane k s t a tk P’(u’, v) P’ viewpoint P(u, v) P Dt
+ D u t ò - 1 2 2 l = r - + l q ( u , v , ) F (cos ( u ' / u ' v ), ) c u 2 2 - br + + - exp( ( u ' v u ' u )) x c du ' c : constant for each sampling plane k 2 2 + u ' v l = l f ( u , v , ) c q ( u , v , ) l q ( u , v , ) l k : 2D texture = - br c exp( t ) k c k reducing quantization errors Textures for Scattering Component U point light sampling plane k+1 sampling plane k s Q t a V fl is evaluated precisely since texture stores integrated values tk P’(u’, v) viewpoint P(u, v) Dt
Scattering component fl: + D t t ò k l I ( t , ) H ( t ) dt l t k + D t t ò k l g ( t , ) dt t k • Illumination component fh: High Quality Rendering • changes smoothly • can be sampled at a large interval use of texture to store pre-integrated values • includes visibility H and intensity distribution Il • must be sampled at a short interval sub-planes for accurate sampling
+ D t t ò light k l = l f ( t , ) I ( t , ) H ( t ) dt h k l t k - 1 m k 1 å l = l f ( t , ) I ( r , ) H ( r ) h k l j j m sub-plane k = 0 j rj:distance between viewpoint and sub-plane j strong intensity many sub-planes sampling plane Computation of Illumination Component • mk sub-planes between sampling planes k and k+1 viewpoint • mk is determined adaptively
light use textures forscattering component sub-plane £ e Intensity of scattered light mk sampling plane :user-specified threshold e Computation of Illumination Component • Determining number of sub-planes, mk 1. shoot a ray 2. compute intensity of scattered light 3. generate sub-planes in proportion to intensity viewpoint same contribution of each sub-plane to pixel intensity
Overview • Introduction • motivation • previous work • Rendering Light Beams • basic Idea • problems • high quality rendering • Rendering the Earth’s Atmosphere • rendering sky • rendering the earth viewed from space • Results • Conclusion
atmosphere viewpoint earth Rendering Earth’s Atmosphere • No shadows of objects • Rendering Sky • extending method for light beams • Rendering the earth viewed from space
Rendering Earth’s Atmosphere • No shadows of objects • Rendering Sky • extending method for light beams viewpoint atmosphere • Rendering the earth viewed from space • atmosphere is very thin layer covering the earth earth
sampling spheres Rendering Earth’s Atmosphere • No shadows of objects • Rendering Sky • extending method for light beams viewpoint atmosphere • Rendering the earth viewed from space • atmosphere is very thin layer covering the earth earth • use of sampling spheres instead of sampling plane
viewpoint atmosphere earth sampling spheres Rendering Earth’s Atmosphere • No shadows of objects • Rendering Sky • extending method for light beams • Rendering the earth viewed from space • atmosphere is very thin layer covering the earth • use of sampling spheres instead of sampling plane
T ò l = l a l l l l I ( ) I ( ) F ( , ) r ( t , ) g ( s , ) g ( t , ) dt v sun l v I 0 sun Ps : intensity of sunlight atmosphere s t l l I ( ) g ( s , ) : attenuation ratio betweenPs and P sun l Pv : phase function viewpoint P : density of particles a : attenuation ratio betweenP and Pv l g ( t , ) v earth a l l F ( , ) r ( t , ) Rendering Sky • Intensity at viewpoint
T ò l = l a l l l l I ( ) I ( ) F ( , ) r ( t , ) g ( s , ) g ( t , ) dt v sun l v 0 : intensity of sunlight atmosphere l l I ( ) g ( t , ) : attenuation ratio betweenPs and P sun v Pv : phase function viewpoint : density of particles : attenuation ratio betweenP and Pv l g ( s , ) l earth a l l F ( , ) r ( t , ) Rendering Sky • Intensity at viewpoint
- 1 k n å Õ l = l a l l D l R I ( ) I ( ) F ( , ) ( t ) g ( s , ) g ( t , ) I v sun l v j sun = = 1 k 1 j k+1 : attenuation between sampling planes k and k+1 : intensity of sunlight atmosphere D l g ( t , ) v k k l l I ( ) g ( s , ) : attenuation ratio betweenPs and P sun l Pv : phase function : cumulative density of particles between sampling planes k and k+1 viewpoint earth R ( t ) a l F ( , ) Rendering Sky • Intensity at viewpoint Ps P
- 1 k n å Õ l = l a l R l D l I ( ) I ( ) F ( , ) ( t ) g ( s , ) g ( t , ) v sun l v j = = 1 k 1 j Rendering Sky • Intensity at viewpoint • Algorithm • create textures of gl , Dgv , R Pv • for k = n to 1, repeat: viewpoint • map gl , Dgv , R textures onto sampling plane k earth
- 1 k n å Õ l = l a l R l D l I ( ) I ( ) F ( , ) ( t ) g ( s , ) g ( t , ) v sun l v j = = 1 k 1 j Rendering Sky • Intensity at viewpoint • Algorithm • create textures of gl , Dgv , R Pv • for k = n to 1, repeat: viewpoint • map gl , Dgv , R textures onto sampling plane k earth • compute IsunF at lattice points
- 1 k n å Õ l = l a l R l D l I ( ) I ( ) F ( , ) ( t ) g ( s , ) g ( t , ) v sun l v j = = 1 k 1 j FB = FB x Dgv + F x R x gl (FB: frame buffer) intensity of scattered light attenuation Rendering Sky • Intensity at viewpoint • Algorithm • create textures of gl , Dgv , R Pv • for k = n to 1, repeat: viewpoint • map gl , Dgv , R textures onto sampling plane k earth • compute IsunF at lattice points • draw plane with blending:
- 1 k n å Õ l = l a l R l D l I ( ) I ( ) F ( , ) ( t ) g ( s , ) g ( t , ) v sun l v j = = 1 k 1 j FB = FB x Dgv + F x R x gl (FB: frame buffer) intensity of scattered light attenuation Rendering Sky • Intensity at viewpoint • Algorithm • create textures of gl , Dgv , R Pv • for k = n to 1, repeat: viewpoint • map gl , Dgv , R textures onto sampling plane k earth • compute IsunF at lattice points • draw plane with blending:
PP ò s l = - b l r I g ( PP , ) exp( ( ) ( l ) dl ) sun l s 0 (a: const) s : extinction coefficient (constant) b r = - : density of particles r ( h ) exp( ah ) Rendering Sky • Textures of gl, Dgv , R Ps atmosphere Pv viewpoint P h earth
PP ò s l = - b l r I g ( PP , ) exp( ( ) ( l ) dl ) sun l s 0 (a: const) ql : extinction coefficient (constant) b h r = - : density of particles r ( h ) exp( ah ) l Û q l g ( PP , ) g ( h , , ) l s l l Rendering Sky • Textures of gl, Dgv , R Ps atmosphere s Pv viewpoint P earth
D l Û D q l g ( PP , ) g ( h , , ) l Û q l R ( PP , ) R ( h , , ) v v v v v v PP ò s l = - b l r I g ( PP , ) exp( ( ) ( l ) dl ) sun l s 0 (a: const) qv : extinction coefficient (constant) b r = - : density of particles r ( h ) exp( ah ) l Û q l g ( PP , ) g ( h , , ) l s l l store as 2D textures Rendering Sky • Textures of gl, Dgv , R Ps atmosphere Pv viewpoint P h earth
Overview • Introduction • motivation • previous work • Rendering Light Beams • basic Idea • problems • high quality rendering • Rendering the Earth’s Atmosphere • rendering sky • rendering the earth viewed from space • Results • Conclusion
Experimental Results previous method previous method proposed method #planes: 40 mesh: 60x60 #planes: 160 mesh: 60x60 #planes: 30 #sub-planes: 120 (ave.) mesh: 10x10 computer: Athlon 1.7GHz, GeForce3
interleaved [Keller01] ray-tracing method previous proposed result # of planes (sub-planes) - 40 160 23 (174) - mesh 60x90 10x15 10x15 time 0.13 [sec.] 0.12 [sec.] 0.08 [sec.] 29 [sec.] Experimental Results computer: Athlon 1.7GHz, GeForce3 Image size: 300x450
Experimental Results interleaved [Keller01] ray-tracing method previous proposed result # of planes (sub-planes) - 40 160 23 (174) - mesh 60x90 10x15 10x15 time 0.13 [sec.] 0.12 [sec.] 0.08 [sec.] 29 [sec.] computer: Athlon 1.7GHz, GeForce3 Image size: 300x450
sampling plane: 9 sub-plane:309 sampling plane: 30 sub-plane:263 time: 0.32 [sec.] time: 0.12 [sec.] computer: Athlon 1.7GHz, GeForce3 Image size: 720x480 Results
computer: Athlon 1.7GHz, GeForce3 Image size: 720x480 Results sampling plane: 100(sky) 30(shaft) sub-plane:135 sampling sphere: 10 time: 0.06 [sec.] time: 0.16 [sec.]