Download presentation
Presentation is loading. Please wait.
Published byMarilyn Watkins Modified over 6 years ago
1
A Practical Analytic Single Scattering Model for Real Time Rendering
Bo Sun Columbia University Ravi Ramamoorthi Columbia University Srinivasa Narasimhan Carnegie Mellon University Shree Nayar Columbia University Sponsors: ONR, NSF
2
Light Transport in Scattering Media
Scattered (glows) Point Source Direct Transmission Viewer Surface Point Clear Day Foggy Day Clear Day Foggy Day
3
Our Technical Contributions
Explicit compact Airlight formula Explicit Surface Radiance formula - Accurate - Simple fragment shader - Fully interactive Assumptions: Isotropic point light sources Homogenous media Single scattering No volumetric shadows
4
The Airlight Integral : scattering coefficient of the medium
Point Source, s Viewer, v Surface Point, p The Airlight Integral:
5
The Airlight Integral : scattering coefficient of the medium
Point Source, s Viewer, v Surface Point, p The Airlight Integral:
6
The Airlight Integral : scattering coefficient of the medium
Point Source, s Viewer, v Surface Point, p The Airlight Integral:
7
The Airlight Integral : scattering coefficient of the medium
Point Source, s Viewer, v Surface Point, p The Airlight Integral:
8
The Airlight Integral : scattering coefficient of the medium
Point Source, s Viewer, v Surface Point, p The Airlight Integral:
9
The Airlight Integral : scattering coefficient of the medium
Point Source, s Viewer, v Surface Point, p The Airlight Integral:
10
The Airlight Integral : scattering coefficient of the medium
Point Source, s Viewer, v Surface Point, p The Airlight Integral:
11
The Airlight Model Originally 4D: , , , Point Source, s
Surface Point, p Viewer, v Originally 4D: , , ,
12
The Airlight Model Originally 4D: , , , Point Source, s
Surface Point, p Viewer, v Originally 4D: , , ,
13
The Airlight Model Originally 4D: , , , Point Source, s
Surface Point, p Viewer, v Originally 4D: , , ,
14
Special Function F Well behaved and purely numerical 2D function.
Pre-computed once for all and stored as a 2D texture.
15
Shader Code for Airlight Model
float AirLight( ) { float u = A1(beta, Dsv, gammasv); float v1 = 0.25*PI+0.5*atan((DvpDsv*cos(gammasv))/(Dsv*sin(gammasv))); float v2 = 0.5*gammasv; float4 f_1=texRECT(F, v1, u); float4 f_2=texRECT(F, v2, u); return A0(lightIntensity, beta, Dsv, gammasv)*(f_1.x-f_2.x); }
16
Shader Code for Airlight Model
float AirLight( ) { float u = A1(beta, Dsv, gammasv); float v1 = 0.25*PI+0.5*atan((DvpDsv*cos(gammasv))/(Dsv*sin(gammasv))); float v2 = 0.5*gammasv; float4 f_1=texRECT(F, v1, u); float4 f_2=texRECT(F, v2, u); return A0(lightIntensity, beta, Dsv, gammasv)*(f_1.x-f_2.x); }
17
Shader Code for Airlight Model
float AirLight( ) { float u = A1(beta, Dsv, gammasv); float v1 = 0.25*PI+0.5*atan((DvpDsv*cos(gammasv))/(Dsv*sin(gammasv))); float v2 = 0.5*gammasv; float4 f_1=texRECT(F, v1, u); float4 f_2=texRECT(F, v2, u); return A0(lightIntensity, beta, Dsv, gammasv)*(f_1.x-f_2.x); }
18
Shader Code for Airlight Model
float AirLight( ) { float u = A1(beta, Dsv, gammasv); float v1 = 0.25*PI+0.5*atan((DvpDsv*cos(gammasv))/(Dsv*sin(gammasv))); float v2 = 0.5*gammasv; float4 f_1=texRECT(F, v1, u); float4 f_2=texRECT(F, v2, u); return A0(lightIntensity, beta, Dsv, gammasv)*(f_1.x-f_2.x); }
19
Shader Code for Airlight Model
float AirLight( ) { float u = A1(beta, Dsv, gammasv); float v1 = 0.25*PI+0.5*atan((DvpDsv*cos(gammasv))/(Dsv*sin(gammasv))); float v2 = 0.5*gammasv; float4 f_1=texRECT(F, v1, u); float4 f_2=texRECT(F, v2, u); return A0(lightIntensity, beta, Dsv, gammasv)*(f_1.x-f_2.x); }
20
Implementation Choices for Airlight
64x64 floating point texture for F table Add a skybox to invoke vertex/pixel shader to compute Airlight. Nearest Neighbor Bilinear Interpolation
21
Airlight Demo Demo
22
The Surface Radiance Model
Point Source, s BRDF Viewer, v Surface Point, p
23
The Surface Radiance Model
Point Source, s BRDF Viewer, v Surface Point, p : Lambertian, Phong : , 1D function on 2D 2D:
24
Special Function G
25
Shader Code for Surface Radiance
float SurfaceRadiance( ) { float4 G = texRECT(G_20, Tsp, thetas); return Ks*Io*beta/(2*Dsp*PI)*G; }
26
Shader Code for Surface Radiance
float SurfaceRadiance( ) { float4 G = texRECT(G_20, Tsp, thetas); return Ks*Io*beta/(2*Dsp*PI)*G; }
27
Shader Code for Surface Radiance
float SurfaceRadiance( ) { float4 G = texRECT(G_20, Tsp, thetas); return Ks*Io*beta/(2*Dsp*PI)*G; }
28
Implementation Choices for Surface Radiance
Need to add radiance contribution from attenuated direct lighting. Attenuate the final radiance according to distance to the camera. Point Source, s BRDF Viewer, v Surface Point, p
29
Implementation Choices for Surface Radiance
Need to add radiance contribution from attenuated direct lighting. Attenuate the final radiance according to distance to the camera. Point Source, s BRDF Viewer, v Surface Point, p
30
Lambertian and Phong Spheres
Clear Day Lambertian Phong= Phong=20 Foggy Day
31
The Complete Model Surface Radiance Model Airlight Model 2 Lookups
2 Lookups and
32
The Complete Model Surface Radiance Model Airlight Model 2 Lookups
2 Lookups and Image size Lights Terms to approximate the phase function Texture lookups Analytic expression Maya Plug-in available from our website.
33
Demo: Complex Geometry
34
Complex Lighting and Material
Rendering time is linear in the number of lights. Viewer, v BRDF Surface Point, p
35
Point Spread Function Assume equidistant point sources
Scattering is essentially Point Spread Function (PSF). Angles Intensity Input Output Angles Intensity Angular Component Amplitude Component PSF
36
Point Spread Function Assume equidistant point sources
Scattering is essentially Point Spread Function (PSF). Angles Intensity Input Output Angles Intensity Angular Component Amplitude Component PSF Tsv*exp[-Tsv] * Pre-convolved Environment Map
37
Convolution with PSF BRDF Environment Map Clear Day Foggy Day
38
Demo: PSF for Complex Lighting
39
Summary An OpenGL-Like Practical Real-Time Rendering Technique: Analytic Airlight Model 50fps fps
40
Summary An OpenGL-Like Practical Real-Time Rendering Technique: Analytic Airlight Model Analytic Surface Radiance Model 50fps fps
41
Summary An OpenGL-Like Practical Real-Time Rendering Technique: Analytic Airlight Model Analytic Surface Radiance Model PSF for Complex Lighting and Natural Material 100fps fps
42
Acknowledgement R. Wang, J. Tran and D. Luebke for the PRT code.
S. Premoze for the Monte Carlo simulation code. P. Debevec for the light probes. W. Matusik for the tabulated BRDF. Supported by a Columbia University Presidential Fellowship, an ONR Grant, an NSF Grant, an NSF CAREER award, and equipment donations from Intel and NVIDIA.
43
Thanks for Listening! Maya Plug-in, 2D tables, and Shader code:
44
The End
45
The End
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.