A Practical Analytic Single Scattering Model for Real Time Rendering

Slides:



Advertisements
Similar presentations
Week 8 - Friday.  What did we talk about last time?  Radiometry  Photometry  Colorimetry  Lighting with shader code  Ambient  Directional (diffuse.
Advertisements

Computer graphics & visualization Global Illumination Effects.
Environment Mapping CSE 781 – Roger Crawfis
Spherical Convolution in Computer Graphics and Vision Ravi Ramamoorthi Columbia Vision and Graphics Center Columbia University SIAM Imaging Science Conference:
Spherical Harmonic Lighting of Wavelength-dependent Phenomena Clifford Lindsay, Emmanuel Agu Worcester Polytechnic Institute (USA)
Measuring BRDFs. Why bother modeling BRDFs? Why not directly measure BRDFs? True knowledge of surface properties Accurate models for graphics.
Frequency Domain Normal Map Filtering Charles Han Bo Sun Ravi Ramamoorthi Eitan Grinspun Columbia University.
Virtual Realism LIGHTING AND SHADING. Lighting & Shading Approximate physical reality Ray tracing: Follow light rays through a scene Accurate, but expensive.
Advanced Computer Graphics
Foundations of Computer Graphics (Spring 2012) CS 184, Lecture 21: Radiometry Many slides courtesy Pat Hanrahan.
Advanced Computer Graphics (Spring 2013) CS 283, Lecture 8: Illumination and Reflection Many slides courtesy.
Torrance Sparrow Model of Reflectance + Oren Nayar Model of Reflectance.
Rendering with Environment Maps Jaroslav Křivánek, KSVI, MFF UK
1. What is Lighting? 2 Example 1. Find the cubic polynomial or that passes through the four points and satisfies 1.As a photon Metal Insulator.
Week 9 - Wednesday.  What did we talk about last time?  Fresnel reflection  Snell's Law  Microgeometry effects  Implementing BRDFs  Image based.
Rendering Particles in the Shafts of Light Presented by Taekyu Shin.
Based on slides created by Edward Angel
1 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Shading I.
A Signal-Processing Framework for Inverse Rendering Ravi Ramamoorthi Pat Hanrahan Stanford University.
Shree Nayar and Srinivasa Narasimhan Computer Science Columbia University ICCV Conference Korfu, Greece, September 1999 Sponsors: NSF Vision in Bad Weather.
Rendering (彩現 渲染).
A Signal-Processing Framework for Forward and Inverse Rendering COMS , Lecture 8.
An Efficient Representation for Irradiance Environment Maps Ravi Ramamoorthi Pat Hanrahan Stanford University.
Photon Tracing with Arbitrary Materials Patrick Yau.
Computer Graphics (Spring 2008) COMS 4160, Lecture 20: Illumination and Shading 2
Advanced Computer Graphics (Fall 2010) CS 283, Lecture 10: Global Illumination Ravi Ramamoorthi Some images courtesy.
Computer Graphics (Fall 2008) COMS 4160, Lecture 19: Illumination and Shading 2
Image-based Rendering of Real Objects with Complex BRDFs.
Exploiting Temporal Coherence for Incremental All-Frequency Relighting Ryan OverbeckRavi Ramamoorthi Aner Ben-ArtziEitan Grinspun Columbia University Ng.
Structured Light in Scattering Media Srinivasa Narasimhan Sanjeev Koppal Robotics Institute Carnegie Mellon University Sponsor: ONR Shree Nayar Bo Sun.
Chromatic Framework for Vision in Bad Weather Srinivasa G. Narasimhan and Shree K. Nayar Computer Science Department Columbia University IEEE CVPR Conference.
Computer Graphics (Fall 2004) COMS 4160, Lecture 16: Illumination and Shading 2 Lecture includes number of slides from.
Removing Weather Effects from Monochrome Images Srinivasa Narasimhan and Shree Nayar Computer Science Department Columbia University IEEE CVPR Conference.
Introduction | Crepuscular rays and Caustics Caustics are high intensity highlights due to convergence of light via different paths Crepuscular rays (godrays)
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Shading I Ed Angel Professor of Computer Science, Electrical and Computer Engineering,
1cs426-winter-2008 Notes  RenderMan resources up on the website  We will be using Pixie this term Check on the website soon (installed on CS linux.
Illumination and Direct Reflection Kurt Akeley CS248 Lecture 12 1 November 2007
Measure, measure, measure: BRDF, BTF, Light Fields Lecture #6
Specular Reflections from Rough Surfaces Lecture #4 Thanks to Shree Nayar, Ravi Ramamoorthi, Pat Hanrahan.
CS 480/680 Computer Graphics Shading I Dr. Frederick C Harris, Jr.
Computer Graphics Inf4/MSc Computer Graphics Lecture Notes #16 Image-Based Lighting.
Shading (introduction to rendering). Rendering  We know how to specify the geometry but how is the color calculated.
Shading / Light Thanks to Srinivas Narasimhan, Langer-Zucker, Henrik Wann Jensen, Ravi Ramamoorthi, Hanrahan, Preetham.
Shedding Light on the Weather
02/25/05© 2005 University of Wisconsin Last Time Meshing Volume Scattering Radiometry (Adsorption and Emission)
Multiple Scattering in Vision and Graphics Lecture #21 Thanks to Henrik Wann Jensen.
Sebastian Enrique Columbia University Real-Time Rendering Using CUReT BRDF Materials with Zernike Polynomials CS Topics.
Real-Time Rendering Digital Image Synthesis Yung-Yu Chuang 01/03/2006 with slides by Ravi Ramamoorthi and Robin Green.
Computer Graphics Global Illumination: Photon Mapping, Participating Media Lecture 12 Taku Komura.
An Efficient Representation for Irradiance Environment Maps Ravi Ramamoorthi Pat Hanrahan Stanford University SIGGRAPH 2001 Stanford University SIGGRAPH.
Real-time Shading with Filtered Importance Sampling Jaroslav Křivánek Czech Technical University in Prague Mark Colbert University of Central Florida.
Taku KomuraComputer Graphics Local Illumination and Shading Computer Graphics – Lecture 10 Taku Komura Institute for Perception, Action.
Inverse Global Illumination: Recovering Reflectance Models of Real Scenes from Photographs Computer Science Division University of California at Berkeley.
Diffuse Reflections from Rough Surfaces Lecture #5
Photo-realistic Rendering and Global Illumination in Computer Graphics Spring 2012 Material Representation K. H. Ko School of Mechatronics Gwangju Institute.
Computer Graphics (Spring 2003) COMS 4160, Lecture 18: Shading 2 Ravi Ramamoorthi Guest Lecturer: Aner Benartzi.
Local Illumination and Shading
Thank you for the introduction
OpenGL Shading. 2 Objectives Learn to shade objects so their images appear three-dimensional Introduce the types of light-material interactions Build.
Lighting and Reflection Angel Angel: Interactive Computer Graphics5E © Addison-Wesley
Layered Media / Subsurface Scattering (1)
Computer Graphics Ken-Yi Lee National Taiwan University (the slides are adapted from Bing-Yi Chen and Yung-Yu Chuang)
Computer Graphics: Illumination
Advanced Computer Graphics
Shaders, part 2 alexandri zavodny.
Instant Dehazing of Images using Polarization
Advanced Computer Graphics
© 2003 University of Wisconsin
Exploring Shaders in Unity
A Practical Model for Subsurface Light Transport
Presentation transcript:

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

Light Transport in Scattering Media Scattered (glows) Point Source Direct Transmission Viewer Surface Point Clear Day Foggy Day Clear Day Foggy Day

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

The Airlight Integral : scattering coefficient of the medium Point Source, s Viewer, v Surface Point, p The Airlight Integral:

The Airlight Integral : scattering coefficient of the medium Point Source, s Viewer, v Surface Point, p The Airlight Integral:

The Airlight Integral : scattering coefficient of the medium Point Source, s Viewer, v Surface Point, p The Airlight Integral:

The Airlight Integral : scattering coefficient of the medium Point Source, s Viewer, v Surface Point, p The Airlight Integral:

The Airlight Integral : scattering coefficient of the medium Point Source, s Viewer, v Surface Point, p The Airlight Integral:

The Airlight Integral : scattering coefficient of the medium Point Source, s Viewer, v Surface Point, p The Airlight Integral:

The Airlight Integral : scattering coefficient of the medium Point Source, s Viewer, v Surface Point, p The Airlight Integral:

The Airlight Model Originally 4D: , , , Point Source, s Surface Point, p Viewer, v Originally 4D: , , ,

The Airlight Model Originally 4D: , , , Point Source, s Surface Point, p Viewer, v Originally 4D: , , ,

The Airlight Model Originally 4D: , , , Point Source, s Surface Point, p Viewer, v Originally 4D: , , ,

Special Function F Well behaved and purely numerical 2D function. Pre-computed once for all and stored as a 2D texture.

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); }

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); }

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); }

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); }

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); }

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

Airlight Demo Demo

The Surface Radiance Model Point Source, s BRDF Viewer, v Surface Point, p

The Surface Radiance Model Point Source, s BRDF Viewer, v Surface Point, p : Lambertian, Phong : , 1D function on 2D 2D:

Special Function G

Shader Code for Surface Radiance float SurfaceRadiance( ) { float4 G = texRECT(G_20, Tsp, thetas); return Ks*Io*beta/(2*Dsp*PI)*G; }

Shader Code for Surface Radiance float SurfaceRadiance( ) { float4 G = texRECT(G_20, Tsp, thetas); return Ks*Io*beta/(2*Dsp*PI)*G; }

Shader Code for Surface Radiance float SurfaceRadiance( ) { float4 G = texRECT(G_20, Tsp, thetas); return Ks*Io*beta/(2*Dsp*PI)*G; }

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

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

Lambertian and Phong Spheres Clear Day Lambertian Phong=10 Phong=20 Foggy Day

The Complete Model Surface Radiance Model Airlight Model 2 Lookups 2 Lookups and

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.

Demo: Complex Geometry

Complex Lighting and Material Rendering time is linear in the number of lights. Viewer, v BRDF Surface Point, p

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

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

Convolution with PSF BRDF Environment Map Clear Day Foggy Day

Demo: PSF for Complex Lighting

Summary An OpenGL-Like Practical Real-Time Rendering Technique: Analytic Airlight Model 50fps 40fps

Summary An OpenGL-Like Practical Real-Time Rendering Technique: Analytic Airlight Model Analytic Surface Radiance Model 50fps 60fps

Summary An OpenGL-Like Practical Real-Time Rendering Technique: Analytic Airlight Model Analytic Surface Radiance Model PSF for Complex Lighting and Natural Material 100fps 20fps

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.

Thanks for Listening! Maya Plug-in, 2D tables, and Shader code: http://www.cs.columbia.edu/~bosun/research.htm

The End

The End