34
Soft Shadow Volumes for Ray Tracing Timo Aila Helsinki University of Technology, Hybrid Graphics Samuli Laine Helsinki University of Technology, Ulf Assarsson ARTIS, GRAVIR /IMAG INRIA, Chalmers University of Jaakko Lehtinen Helsinki University of Technology, Remedy Entertainment Tomas Akenine- Möller Lund University

Soft Shadow Volumes for Ray Tracing

Embed Size (px)

DESCRIPTION

Soft Shadow Volumes for Ray Tracing. Samuli Laine Helsinki University of Technology, Hybrid Graphics Ltd. Timo Aila Helsinki University of Technology, Hybrid Graphics Ltd. Ulf Assarsson ARTIS, GRAVIR /IMAG INRIA, Chalmers University of Technology. Jaakko Lehtinen - PowerPoint PPT Presentation

Citation preview

Soft Shadow Volumes for Ray TracingSoft Shadow Volumes for Ray Tracing

Timo Aila

Helsinki University of Technology,

Hybrid Graphics Ltd.

Samuli Laine

Helsinki University of Technology,

Hybrid Graphics Ltd.

Ulf Assarsson

ARTIS, GRAVIR /IMAG INRIA,

Chalmers University of Technology

Jaakko Lehtinen

Helsinki University of Technology,

Remedy Entertainment Ltd.

Tomas Akenine-Möller

Lund University

We presentWe present

An algorithm for computing Soft Shadows

• For planar area light sources

• Exactly the same shadows as using shadow rays

• Faster - up to 2 orders of magnitude

• Can compute very high resolution soft shadows with low extra cost

– E.g. allows for 1000 shadow samples per pixel

• Requires computation of silhouettes

– Trivial for polygon-based scenes

Soft Shadows – A Quick RecapSoft Shadows – A Quick Recap

• Area lights give soft shadows

Point light Area light

Hard shadow Soft shadow

Classic solutionClassic solution

• Multiple shadow rays

pixelpixel

Lots of shadow rays per pixel

Our solution - overviewOur solution - overview

• Replace the shadow rays– With soft shadow volume computations

– Plus one reference shadow ray

pixel

Lots of shadow rays per pixel

pixel

One shadow ray + soft shadow volume computations

Classic approach Our approach

What’s a Soft Shadow Volume?What’s a Soft Shadow Volume?

Soft Shadow Volume =

A. Volume from which an edge projects onto the light source

B. Region of penumbra caused by an edge

Light source

Soft Shadow Volume

Shadow caster

Two parts:

• from any receiving point p, we need to find silhouette edges affecting the visibility

• A method for computing the visibility from silhouette information

Our solution - overviewOur solution - overview

Finding potential silhouettesFinding potential silhouettes

Arbitrary shadow casterArbitrary shadow caster

Arbitrary Arbitrary shadow shadow receiving receiving point point pp

Fast method for determining silhouette edges that overlap light source from p

HOW?HOW?

Bottom face of hemicube

hemicube

Each cell contains list of edges

Hemicube ConstructionHemicube Construction

Rasterize soft shadow volumes into a hemicube for each light source

Each cell contains list of edges

pp

This cell contains potential silhouette edges from pp

Bottom face of hemicube

Rasterize soft shadow volumes into a hemicube for each light source

Each cell contains list of edges

Wedge marked to all cells it even partially overlaps → no artifacts

Hemicube ConstructionHemicube Construction

Bottom face of hemicube

Each cell contains list of edges

Wedge marked to all cells it even partially overlaps → no artifacts

Hemicube ConstructionHemicube Construction

Lots of edges does not need to be considered

Hemicube ConstructionHemicube Construction

Lots of edges does not need to be considered

Because these edges cannot be silhouettes projected onto the light source from any point p

pp11

pp22

Hemicube ConstructionHemicube Construction

Wedge Creation Criterions Wedge Creation Criterions

1. Wedges are created for all edges that are silhouettes from any point on the light source

2. The wedge includes all positions from which the edge projects onto (occludes) the light source.

• Hemicube returns a conservative set of edges

– All the necessary edges but also many more

• We only want edges that are

1. Silhouettes from pp

2. Project onto the light source.

• Tested with Point-inside-wedge

• Now we have the silhouette edges from p

During RenderingDuring Rendering

pp

pp

Visibility ReconstructionVisibility Reconstruction

• Which light samples si are visible from point p?

• Brute force: cast a shadow ray for each si

• Our recipe:

1. Find silhouette edges between p and light source

2. Project them onto light source reduces to 2D

3. Compute relative depth complexity for every si

4. Solve visibility with a single shadow ray

5. Profit

Depth ComplexityDepth Complexity

• Depth complexity of si = number of surfaces

between p and si

1

11

1 0

0

2

Light source as seen from p Depth complexity function

0

• Projected silhouette edges define the first derivative of the depth complexity function

• Hence, relative depth complexity can be solved by integrating the silhouette edges over the light source

• Integration islinear can beperformed oneedge at a time

From Silhouette Edges to Relative Depth ComplexityFrom Silhouette Edges to Relative Depth Complexity

1

11

1 00

2

Integration: ExampleIntegration: Example

• Left-to-right integration of a triangular silhouette

Light source as seen from p Depth complexity function

+1

-1

-10 1

1

0

1

Integration: Sampling PointsIntegration: Sampling Points

• We don’t need the value of the depth complexity function except at the sampling points si

• Sufficient to maintain a depth complexity counter for each si

• Integration: find si that are inside

update region and update theirdepth complexity counters

+1

• There’s a caveat - we only have the edges that overlap the light source

• Loops are not necessarily closed, since parts outside the light source may be missing

Integration: RulesIntegration: Rules

We don’t have this edge!

• Solution: apply special rules to edges that cross the left side of the light source

• This accountsfor potentiallymissing edges

Integration: RulesIntegration: Rules

• Place the light samples into uniformly sized buckets

• During integration, only process affected buckets

• Most edges span only one bucket

• We use approx. sqrt(N)buckets for N light samples

• We also process 4 samplesin parallel using SSE vectorinstructions

Integration: OptimizationIntegration: Optimization

• We are not done yet, since the constant of integration is not known cannot solve visibility

• Solution: cast a shadow rayray to one si with lowest

relative depth complexity

• If blocked, all si are blocked

• Otherwise, all si with lowest rel.

depth complexity are visible

From Relative Depth Complexity to VisibilityFrom Relative Depth Complexity to Visibility

Experimental ResultsExperimental Results

• Comparisons done using a commercial ray tracer

– Turtle by Illuminate Labs

– Enabled heuristic shadow ray casting: stop if first 50% of rays agree

• Our method was implemented into this ray tracer

– We use the same ray caster for casting the reference ray

Columns: 580 triangles, adaptive AA, 960x540

L = 256 L = 1024

Speedup factor 103 242

Formula: 60K triangles, adaptive AA, 960x540

L = 200 L = 800

Speedup factor 30 65

Sponza: 109K triangles, adaptive AA, 960x540

L = 150 L = 600

Speedup factor 11 33

Robots: 1.3M triangles, adaptive AA, 960x540

L = 200 L = 800

Speedup factor 21 58

Ring: 374K triangles, adaptive AA, 960x540

L = 150 L = 600

Speedup factor 13 32

ConclusionsConclusions

• Fast shadow algorithm in wide range of scenes

• Easy to plug into an existing ray tracer

• Scalability considerations

– Number of light samples: excellent (~ sqrt M)

– Number of triangles: good (silhouettes: ~ N(something ≤ 1))

– Output resolution: not so good (linear)

– Spatial size of the light source: not so good (~ linear)

Future WorkFuture Work

• GPU implementation?

• Improvement of the acceleration structure

– To pump up the edge acceptance ratio (currently < 10%)

ThanksThanks

• Questions

Thanks for the cash: Bitboys, Hybrid Graphics, Remedy Entertainment, Nokia, National Technology Agency of Finland, ATI, Illuminate Labs, French Ministry of Research, Chalmers, Hans Werthén foundation, Carl Tryggers foundation, Ernhold Lundströms foundation, Swedish Foundation for Strategic Research

Semi-transparent shadow castersSemi-transparent shadow casters

• Detect the light samples that are occluded only by semi-transparent occluders

• Determine the color for these light samples by casting shadow rays

Visible Blocked

Blocked???