oliver klehm, mpi informatik hans-peter seidel, mpi informatik elmar eisemann, tu delft

29
Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

Upload: oswald-walters

Post on 08-Jan-2018

215 views

Category:

Documents


0 download

DESCRIPTION

3 Shadow Map near far

TRANSCRIPT

Page 1: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

Oliver Klehm, MPI Informatik

Hans-Peter Seidel, MPI Informatik

Elmar Eisemann, TU Delft

Page 2: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

2

Photo by Frédo Durand

Page 3: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

3

Shadow Map

near

far

Page 4: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

4

Assumptions:•Single scattering

Page 5: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

5

Assumptions:•Single scattering•Homogeneous medium

Shadow Map

Page 6: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

6

Shadow Map

Page 7: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

How to do this efficiently?Naïve: O(w*h * d)w*h pixels, d integration steps

7

Shadow Map

Page 8: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

Percentage Closer

Filtering

8

V(d,zS)

Light direction

Visibility function V

Page 9: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

9

Light direction

Shadow Map

x

z(p)

d(x)

0

1

Visibility function V(d,z)

1

-1

0

-1 10

p

d(x')-z(p)

d(x')

z

Page 10: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

Approximate visibility function with truncated Fourier series

10

)(ts

+a2 +..+a4 +..+a8 +..+a16

[Annen et al. 2007]

Page 11: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

11

V(d,z ) =

V(d,z ) = ai(d) Bi(z )s s

Shadow Map

0

z

s (1+1+0+0+0)

d

Page 12: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

12

• Compute Bi(zs)

• Filter Bi

• Compute ai(d)

• Fetch filtered Bi , compute ai Bi

V(d,z ) = ai(d) Bi(z )s s

Shadow Map

Only depends on depths in SM

Filtering without knowledge ofshading point!

At shading timed

Page 13: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

13

Shadow Map

camera ray

d(constant for entire ray)

S = 1 N

Bi Maps

V(d,z ) = ai(d) Bi(z )s s

Filter Kernel

Page 14: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

14

Shadow Map

camera ray

Bi Maps

V(d,z ) = ai(d) Bi(z )s s

camera rayN?

Page 15: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

15

camera ray

camera ray

Bi Map

FilteredBi Map

Page 16: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

16

V(d,zS) = ai(dS) Bi(zS)

Shadow Map

d2 d7 d11 d16 d21

Page 17: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

17

Light direction

Page 18: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

18

Light direction

Page 19: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

19

Light direction

Page 20: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

20

Light direction

Page 21: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

21

Page 22: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

22

Page 23: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

23

Page 24: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

• Complexity:(w*h pixels, d*a shadow map, allowing for d marching-steps)

• Ray-marching: O(w*h * d)

• Tree-based structures on rectified shadow map• [Baran et al. 2010]

“A hierarchical volumetric shadow algorithm for single scattering”

• [Chen et al. 2011]

“Realtime volumetric shadows using 1d min-max mipmaps”

• Tree average: O(w*h * log d + a*d)

• Tree worst: O(w*h * d + a*d)

• Ours: O(w*h * C + C * a*d )(C basis functions)

24

O(w*h + a*d)

Page 25: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

25

Page 26: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

• Light dependent falloff functions• Local light sources

• Degenerated cases of perspective projection

• Ringing artifacts (similar to convolution shadow maps)

26

Page 27: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

• Ringing artifacts (similar to convolution shadow maps)

27

Page 28: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

• Not average visibility, but medium attenuation?• Add weights to filtering

• Other visibility linearization methods?• Exponential shadow maps

• Variance shadow maps

• Exponential variance shadow maps

• Fast prefix-sum-like filtering?

28

Page 29: Oliver Klehm, MPI Informatik Hans-Peter Seidel, MPI Informatik Elmar Eisemann, TU Delft

• Volumetric single scattering - constant time per pixel• Purely image-based, no scene dependence

• New light projection for rectified shadow map

• Fast, high-quality effects

29

2.2 ms 30 fps