Presentation is loading. Please wait.

Presentation is loading. Please wait.

Toward Real-Time Global Illumination

Similar presentations


Presentation on theme: "Toward Real-Time Global Illumination"— Presentation transcript:

1 Toward Real-Time Global Illumination

2 Global Illumination == Offline?
Ray Tracing and Radiosity are inherently slow. Speedup possible by: Brute-force: more hardware, multicore…etc. Approximate results

3 Under Simplified Assumption
Can it become faster if: …the view is fixed? …the scene is static? …the lights are simple? …if indirect lighting is limited?

4 Lighting Design Assuming: Example: Static scene
Fixed (or limited) view Example: Lpics: a hybrid hardware accelerated relighting engine for computer cinematography, SIGGRAPH 2005

5 Lpics Source:

6 Instant Radiosity (and the Problem of Many Lights?)
What if we place many virtual light sources to represent indirect lighting? How do we handle a very large number of light sources? Lightcuts: A Scalable Approach to Illumination, SIGGRAPH 2005

7 Reflective Shadow Maps
Dachsbacher and Stamminger symposium on Interactive 3D graphics and games (I3D '05). Source:

8 Precomputed Light Transport

9 Indirect Lighting Many indirect lighting effects are subtle, yet crucial for visual realism. Examples are: Soft shadow Ambient occlusion

10 Ambient Occlusion Ambient light is a very crude approximation to indirect reflections of surrounding objects. What if a point can’t see much of its surrounding? From: Janne Kontkanen & Samuli Laine ACM I3D 2005

11 Soft Shadow from Environment Lighting
Sen, Cammarano, Hanrahan, 2003 Sloan, Kautz, Snyder 2002 Shadows from point-lights (shadow maps, volumes) Shadows from smooth lighting (precomputed radiance transfer)

12 Beyond Monte Carlo Path Tracing?
Are global illumination solvers always time consuming? What if the scene and the lights are static ?  Radiosity (view can changes!) What if only the scene is static?

13 Light Stage Take photos under single point light at various positions.
Trivial questions: how to produce new images at: Two point lights? Area light? Environment light (captured by light probe)?

14

15 Precomputed Light Transport
Three important papers to start with: "Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low-Frequency Lighting Environments" Sloan et al., SIGGRAPH 2002 "All-Frequency Shadows Using Non-linear Wavelet Lighting Approximation" Ng et al., SIGGRAPH 2003. "Triple Product Wavelet Integrals for All-Frequency Relighting" Ng et al.  SIGGRAPH 2004

16 The following 8 slides are from Ren Ng’s SIGGRAPH 2003 presentation

17 Relighting as Matrix-Vector Multiply
We represent relighting as a matrix vector multiplication.

18 Relighting as Matrix-Vector Multiply
Output Image (Pixel Vector) Input Lighting (Cubemap Vector) The input to the multiplication is the lighting environment, here shown as an unfolded cubemap. The input vector contains a linearization of the cubemap pixels. The output of the multiplication is an image of the scene lit by the input environment. The output vector contains relit image pixels. We call the matrix that transforms from input lighting to output image the light-transport matrix. Let’s take a look at two ways that we can precompute the data in this matrix. Transport Matrix

19 Ray-Tracing Matrix Columns

20 Ray-Tracing Matrix Columns
The first method is to raytrace the columns, which are just images of the scene lit by a single basis light. Any light transport effect that can be raytraced may be handled. For example, glossy materials can be handled. Also, even though we don’t demonstrate this in the paper, there is no reason that global illumination cannot be handled.

21 Light-Transport Matrix Rows
The second method is to compute the matrix rows. The rows tell us how energy is transported from the environment to a single output pixel. For example, if the pixel is on the floor of the plant scene, we would see the silhouette of the plant blocking part of the sky.

22 Light-Transport Matrix Rows
If we consider a pixel near the base of the plant, then the silhouette comes closer as if seen in a fisheye lens.

23 Light-Transport Matrix Rows
If we consider a pixel on a leaf of the plant, then we see the visibility from within its foliage.

24 Rasterizing Matrix Rows
Pre-computing rows Rasterize visibility hemicubes with graphics hardware Read back pixels and weight by reflection function So, to precompute the rows, we perform two steps for each point the scene. First step: we position the camera at that point, and rasterize the scene into each face of a hemicube located at that point. That gives us the visibility. Second step: we read back the visibility pixels and weight them by the reflection function. For the plant, reflection is diffuse, and we see a cosine falloff towards the horizon. For the teapot, there is also a glossy term, and you can see that as a small highlight drawing energy from a small part of the sky.

25 Low-Frequency vs. All-Frequency
Teapot in Grace Cathedral


Download ppt "Toward Real-Time Global Illumination"

Similar presentations


Ads by Google