24
Realistic Soft Shadows by Penumbra-Wedges Blending Vincent Forest, Loïc Barthe, Mathias Paulin IRIT-UPS-CNRS University of Toulouse, France www.irit.fr/~Vincent.Forest/softshadows.php

Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Realistic Soft Shadows by Penumbra-Wedges Blending

Vincent Forest, Loïc Barthe, Mathias Paulin

IRIT-UPS-CNRS University of Toulouse, France

www.irit.fr/~Vincent.Forest/softshadows.php

Page 2: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Outline

• Introduction

• Previous works

• The Penumbra-wedges approach

• Realistic soft shadows by penumbra-wedges blending

• Hardware implementation & results

• Conclusion & perspectives

Page 3: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Hard VS soft shadows

Hard shadows:

• Is the light source visible?

• Easy and fast to compute

• Based on the assumption that lights are points

Soft shadows:

• What area of the light source is visible?

• Shadows for extended light source

• Require more efforts/horsepower than hard shadows

Page 4: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Previous works [1/2]

Two approaches for hard shadows generation

• Image based (shadow map [Williams 78])

• Use one or many shadow maps to define if a fragment is visible from the light

• Geometry based (shadow volume [Crow 77])

• Build a shadow volume by object space silhouette extraction that contains shadowed fragments

Soft shadows algorithms are derived from these two approaches

Page 5: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Previous works [2/2]

Image based soft shadows algorithms

• Visually plausible soft shadows

• PCF, Smoothie [Chan et al. 03], Penumbra-map [Wyman et al. 03], ...

• Physically plausible soft shadows

• Soft shadows by back projection [Guennebaud et al. 06], Sampling of light source visibility [Atty et al. 05]

Geometry based soft shadows algorithm

• A physically plausible algorithm

• Penumbra-Wedges [Assarsson et al. 03]

Page 6: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Penumbra-wedges [1/4]

Penumbra-wedges algorithm

• Takes advantage of the shadow-volume evolutions for efficient/robust real-time implementation

• Z-fail algorithm [Carmack 00]

• Split-plane shadow volume [Laine 05]

• ...

• Generates non-aliased and « physically plausible » soft shadows

Page 7: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Penumbra-wedges [2/4]

Overview

Visibility buffer computation

• First pass: draw hard shadow

• Second pass: modulate the visibility buffer for fragments in penumbra

Shadow-volumes

Penumbra-wedges

X

+Specular & diffuse

Visibility buffer

Modulated spec+diff

Ambient

Final image

Page 8: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Penumbra-wedges [3/4]

Penumbra-wedges algorithm is based on the assumption that silhouettes are non-overlapping

Edge of the silhouette 2

Light

Edge of thesilhouette 1

Overlappingarea

Occluded Area 1

+Occluded

Area 2

Page 9: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Penumbra-wedges [4/4]

Penumbra-wedges algorithm

• Generates non-aliased and « physically plausible » soft shadows except when silhouettes are overlapping

Penumbra-wedges Reference

Page 10: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Penumbra blending [1/6]

The accurate blending of penumbrae requires the knowledge of the geometry of the occluded light region for each fragment

• Compute a vBuffer per silhouette

• Blend the per silhouette vBuffer within a final vBuffer

Page 11: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Step 1: Per silhouette vBuffer computations

• The occluded area is bounded by a rectangle

• For a better approximation of the occluder geometry the light is subdivided in 4 parts

• The vCoef is then computed independently per radial part

Penumbra blending [2/6]

Light

Occluder

5% 9%

13% 7%

Page 12: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

The per silhouette vBuffer stores an approximation of the geometry of the occluder and its coverage percentage

• The next step updates the final vBuffer

Penumbra blending [3/6]

Light

Occluder

5% 9%

13% 7%

5% 2% 10%

15%

Final vBuffer Per silhouette vBuffer

Previous occluder

Page 13: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Step 2: Per silhouette vBuffer blending

• Accumulate the light occlusion percentage

• Identify the possible overlaps in occluded regions

• Compute the occluded light percentage of the possible overlapping regions

• Subtract it from the percentage computed before

• Update bounding rectangle

Penumbra blending [4/6]

28%

Final vBuffer

19%7%

6%3%

17%

7%-3%19%-6%

28%-17%

4%

13%

11% 7%

Page 14: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Since bounding rectangles region can be partially occluded, the overlapped area is approximated as follow:

• E: effective overlapped area

• b: bounding rectangle intersection area

• s, f: indices indentifying respectively the silhouette and the

final vBuffer

• Ax: light occlusion area

• Bx: bounding rectangle area

Penumbra blending [5/6]

E=A f

Bf

⋅As

Bs

⋅b

Page 15: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

The computation of the silhouette bounding rectangle requires the knowledge of the maximum in X and Y of the occluding edges coordinates

Penumbra blending [6/6]

Upper right radial partLight center

Max Y

Max X

Previous Bounding Rectangle

Max X

Adjusted Bounding Rectangle

Page 16: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

GPU implementation [1/4]

3 passes algorithm

• Init the silhouette vBuffer by a shadow-volume pass

• Compute the vCoef of the fragments in the penumbra of the silhouette

• Subdivide light in 4 radial parts, and update vCoef independently for each part

• In each radial part, approximate the occluder geometry by a bounding rectangle

• Blend the silhouette vBuffer with the final vBuffer

• Use the bounding rectangles to determine the overlapping area and to correct the penumbrae blending

Page 17: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

GPU implementation [2/4]

Parameters are stored with a precision of 8-bits and packed in 32-bits scalars

• Per radial part parameters:

• Top, bottom, right and left coordinates of the bounding rectangle

• Light occlusion percentage

• The maximum in X and Y of the occluding edges coordinates

bRect min X bRect min Y bRect max X bRect max Y

vCoef Edge max X Edge max Y

32-bits scalar

X 4 parts

Page 18: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

GPU implementation [3/4]

4 RGBA simple precision float buffers

• Needs MRT for parameters update

• Uses FBO for render to texture

bRect parameters

vCoef & edge max X/Y parameters

12

34

Final vBufferSilhouette vBuffer

Page 19: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

GPU implementation [4/4]

4 RGBA simple precision float buffers

• GL_MAX_COLOR_ATTACHMENTS_EXT = 4

• Needs only one FBO

GL_COLOR_ATTACHMENT0_EXT

12

34

Final vBufferSilhouette vBuffer

GL_COLOR_ATTACHMENT1_EXT

GL_COLOR_ATTACHMENT2_EXT

GL_COLOR_ATTACHMENT3_EXT

Page 20: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Results [1/2]

1 Penumbra-Wedges

2 Probabilistic approach[Assarsson et al. 03]

3 Our algorithm

4 Reference

1 2

3 4

Page 21: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Results [2/2]

Videos

Page 22: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Conclusion

• We have proposed a physically plausible soft shadows algorithm based on the penumbra-wedges

• Our algorithm significantly reduces the overlapping artefacts

- -Penumbra-wedges Reference Our algorithm

Page 23: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Perspectives

The approximation of the occluder geometry may be insufficient when the occlusion area is concentrated in a part of the bounding rectangle

• The center of gravity of the light occlusion area could be used to weight the bounding rectangles intersection area

bRect min X bRect min Y bRect max X bRect max Y

32-bits scalars

vCoef Edge max X Edge max Y Discretized G

Page 24: Realistic Soft Shadows by Penumbra-Wedges Blending · Penumbra-wedges X + Specular & diffuse Visibility buffer Modulated spec+diff Ambient Final image. Penumbra-wedges [3/4] Penumbra-wedges

Thanks to Valve software who authorized us to use the models and the materials of the Half-life² video game