1 of 27

Zhao Dong1, Jan Kautz2, Christian Theobalt3�Hans-Peter Seidel1

Interactive Global Illumination Using Implicit Visibility

1 MPI Informatik

Germany

2 University College London

UK

3 Stanford University

US

2 of 27

Motivation

  • Global Illumination (GI) Effects

Name, First Name

2

Title

Hard Shadow

Soft Shadow

[HLHS03]

Direct Lighting

Direct +Indirect Lighting

[Fantasylab]

Arbitrary BRDF

[KSS02]

3 of 27

Motivation

  • GI effects is important for realistic image synthesis.

  • Real-time GI rendering is an open problems, especially for dynamic scene.

  • Visibility update is always the key bottleneck.🡪 Implicitly evaluate visibility info.

Name, First Name

3

Title

4 of 27

Related Works

  • Hierarchical Radiosity
    • Explicit visibility evaluation is expensive.
    • Dynamic scene 🡪 global update “links” per frame.

  • Interactive Ray Tracing
    • Difficult to interactively handle indirect lighting

or environmental (area) light sources.

  • Dynamic Ambient Occlusion
    • Multiplying incident lighting with a precomputed

factor that represents the visible hemispherical

area at a point. Just a ratio number, directional

info is incorrect.

Name, First Name

4

Title

[Hanrahan91]

[Wald07]

[Bunnell05]

5 of 27

Related Works

  • Precomputed Radiance Transfer
    • Dynamic Scene make the precomputation difficult
    • SH Exponentiation 🡪 Direct lighting only.

  • Implicit Visibility and antiradiance
    • Many similarities with our method
    • Our implicit visibility handling is slightly more

flexible, as we impose no restrictions on the

dynamics of the scene, but is also slightly more

expensive.

Name, First Name

5

Title

[Ren06]

[Dachsbacher07]

6 of 27

Light Transport

  • Rendering Equation [Kajiya86]

Name, First Name

6

Title

7 of 27

Light Transport

  • Approximate Render Equation

Name, First Name

7

Title

8 of 27

Basic Implicit Visibility Concept

  • ShadowMap concept:
    • Keep the link with the shortest

distance in each bin.

  • Assumptions:
    • Each element is small.
    • Constant energy across each

element’s extent.

    • A surface element covers the

extent of the spherical bin.

Name, First Name

8

Title

Nearest Element

9 of 27

Basic Implicit Visibility Concept

  • Naive Solution
    • O(N2), N is the

Number of scene

Element.

  • Hierarchical Solution
    • Similar with hierarchical

Radiosity[Hanrahan91]

    • O(NlogN)

Name, First Name

9

Title

10 of 27

Algorithm Overview

  • Preprocess Geometry:
    • Create surface elements (surfels) based on input geometry
    • Create Hierarchical geometric structures (QuadTree)
  • For each frame Do:
    • Update the geometry information for initial geometric hierarchy.
    • Create hierarchical links between elements.
    • Refine hierarchical links, Top 🡪 Down, Remove unnecessary links.
    • Push down all the links to leaf node.
    • For each bounce Do:
      • Gathering incident energy from links and compute illumination in leaf nodes.
      • Pull up the indirect lighting energy from leaf to root.
    • End For
    • End For

Name, First Name

10

Title

11 of 27

Preprocess Geometry

  • Create Surfels:
    • One vertex 🡨🡪 One Surfel
    • Surfel position = vertex position
    • Surfel normal = vertex normal
    • Surfel texture coords = vertex texture coords
      • Texture coords is for Parameterization.
    • Surfel area [Bunnell05]:

Name, First Name

11

Title

Normal

Position

Area

Surface Elements

(Surfels)

Texture

Coords

12 of 27

Preprocess Geometry

  • Create hierarchical geometric structures
    • Based on UV texture coords (One texture atlas 🡪 One QuadTree)
    • For deformable model, geometric hierarchy created once.
    • For parent node in hierarchy:

Name, First Name

12

Title

13 of 27

Create Hierarchical Links

  • Similar with Hierarchical Radiosity [Hanrahan91]
    • Plus implicit visibility check: Shortest distance link

Name, First Name

13

Title

Atlas0

Atlas1

Atlas2

Atlas3

BinArray of

Stored Link

Shortest Link

14 of 27

Refine Hierarchical Links

  • Why?
    • Unnecessary links for the same bin appear in different tree levels

Name, First Name

14

Title

A

B

C

A

B

C

A

BinArray of

Shortest Link

BinArray of

Shortest Link

Same bin

15 of 27

Refine Hierarchical Links

  • For the arrow in the figure:
    • Different Color 🡪 Different Bins
    • The length of arrow 🡪 distance of link

Name, First Name

15

Title

Level2

Level1

Level0

16 of 27

Illumination Computation

  • Push down the links to leaf node
    • Leaf node is vertex, so we evaluate illumination for each vertex

(Leaf node level).

  • Illumination Computation
    • For each vertex, Gathering incident energy from hierarchical links.
    • For deformable model, each frame we can reuse the hierarchical links to compute N-bounces lighting.
    • Similar with Hierarchical Radiosity [Hanranhan91], each leaf node should Pull up its out shooting energy to it’s parent node! (multiply with its area ratio)

Name, First Name

16

Title

17 of 27

Algorithm Implementation

  • Preprocess Geometry:
    • Create surface elements (surfels) based on input geometry
    • Create Hierarchical geometric structures (QuadTree)
  • For each frame Do:
    • Update the geometry information for initial geometric hierarchy.
    • Create hierarchical links between elements.
    • Refine hierarchical links, Top 🡪 Down, Remove unnecessary links.
    • Push down all the links to leaf node.
    • For each bounce Do:
      • Gathering incident energy from links and compute illumination in leaf nodes.
      • Pull up the indirect lighting energy from leaf to root.
    • End For
    • End For

Name, First Name

17

Title

Preprocess once, which depends

on the model’s Complexity, and

it is very fast on CPU side!

Execute for each frame. Create

And Refine hierarchical links is

the main Computation cost!

Currently implemented on

CPU!

Fully run on GPU side and it is

Quite fast!

18 of 27

Results: Various Bin Numbers

Name, First Name

18

Title

Path Tracing

6x12x12, 6.23FPS

6x16x16, 4.42FPS

6x8x8, 7.89FPS

19 of 27

Results: Efficiency Analysis

Name, First Name

19

Title

6x8x8

6x12x12

6x16x16

20 of 27

Results: Indirect Lighting

Name, First Name

20

Title

Direct, 6x16x16, 5.73FPS

One-bounce, 6x16x16, 4.95FPS

Two-bounces, 6x16x16, 4.43FPS

21 of 27

Results: Non-hierarchical VS Hierarchical

Name, First Name

21

Title

Path Tracing

Non-hierarchy, 6x16x16, 8.5s

6x16x16, 4.83FPS

6x16x16, coarse mesh

22 of 27

Results: Area Light (One-bounce)

Name, First Name

22

Title

Path Tracing

6x16x16, 5.12FPS

23 of 27

Results: Glossy && Between objects

Name, First Name

23

Title

Path Tracing

6x12x12, 8.02FPS

Direct Lighting,6x12x12,3.86FPS

24 of 27

Result: Video

Name, First Name

24

Title

25 of 27

Limitation && Problems

  • Limitations:
    • Parameterization based on the texture coords, so input model must be textured.
    • Our method is related with space distribution of vertex, so for too coarse input mesh, the light leaking will happen.
    • Create && Refine hierarchical links currently only implemented on CPU, and occupy most of the time 🡪 Moderately complex scenes.
    • Currently no explicit strategy for maintaining the temporal coherence of hierarchical links structure, so some flickering effects appear in animation.

Name, First Name

25

Title

26 of 27

Conclusion && Future Works

  • Conclusion
    • A novel global illumination method that builds on and extends the traditional hierarchical radiosity approach by implicitly evaluating visibility.
    • Full global illumination solutions for moderately complex and arbitrarily deforming dynamic scenes at near-real-time frame rates on a single PC.
  • Future Works
    • Investigate explicit temporal coherence strategies 🡪 improve animation quality
    • Decoupling the tessellation of the mesh from shading computation.
    • Integration with NormalMap/DisplacementMap

Name, First Name

26

Title

27 of 27

Questions and Thanks!

  • Questions and Thanks!

Name, First Name

27

Title