Presentation is loading. Please wait.

Presentation is loading. Please wait.

A Practical Analytic Single Scattering Model for Real Time Rendering

Similar presentations


Presentation on theme: "A Practical Analytic Single Scattering Model for Real Time Rendering"— Presentation transcript:

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


Download ppt "A Practical Analytic Single Scattering Model for Real Time Rendering"

Similar presentations


Ads by Google