and Disk-Light Shading with Linearly Transformed Cosines

80
Real-Time Line- and Disk-Light Shading with Linearly Transformed Cosines Eric Heitz Stephen Hill Real-Time Line- and Disk-Light Shading with Linearly Transformed Cosines Eric Heitz Stephen Hill 2017-08-07 Real-Time Line- and Disk-Light Shading with Linearly Transformed Cosines B This presentation contains many animated slides that do not display well with all PDF viewers. We recommend using Adobe Acrobat Reader.

Transcript of and Disk-Light Shading with Linearly Transformed Cosines

Page 1: and Disk-Light Shading with Linearly Transformed Cosines

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Eric Heitz Stephen Hill

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Eric Heitz Stephen Hill

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

BThis presentation contains many animated slides that do not display wellwith all PDF viewers. We recommend using Adobe Acrobat Reader.

Page 2: and Disk-Light Shading with Linearly Transformed Cosines

Introduction

1

Introduction

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Page 3: and Disk-Light Shading with Linearly Transformed Cosines

Introduction

Last year: real-time polygonal-light shading with LTC

Real-Time Polygonal-Light Shading with Linearly Transformed Cosines (the theory)SIGGRAPH 2016 technical paper

Real-Time Area Lighting: a Journey from Research to Production (the practice)SIGGRAPH 2016 Advances in Real-Time Rendering course

2

Last year: real-time polygonal-light shading with LTC

Real-Time Polygonal-Light Shading with Linearly Transformed Cosines (the theory)SIGGRAPH 2016 technical paper

Real-Time Area Lighting: a Journey from Research to Production (the practice)SIGGRAPH 2016 Advances in Real-Time Rendering course

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Last year, at SIGGRAPH 2016, we presented a new technique forreal-time polygonal-light shading.

The cornerstone of this technique is the new spherical distribu-tion Linearly Transformed Cosine (LTC), introduced in our technical paper:https://labs.unity.com/article/real-time-polygonal-light-shading-linearly-transformed-cosines

Practical details and optimizations were discussed in our talk in theAdvances in Real-Time Rendering course:http://blog.selfshadow.com/publications/s2016-advances/

Page 4: and Disk-Light Shading with Linearly Transformed Cosines

Introduction

This year: new real-time area-light types with LTCs

polygon line disk sphere

3

This year: new real-time area-light types with LTCs

polygon line disk sphere

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

This year, we extend this area-lighting framework by introducing newarea-light primitives such as lines, disks and spheres.

Page 5: and Disk-Light Shading with Linearly Transformed Cosines

Introduction

Last year: LTC integration for polygons

analytic integrationBRDF approximated by LTC

spherical polygon

4

Last year: LTC integration for polygons

analytic integrationBRDF approximated by LTC

spherical polygon

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

The shading is the computation of the integral of the BRDF over thespherical domain covered by the light. The main property of an LTC isthat it can be analytically integrated over spherical polygons, whichmakes it a useful tool for polygonal-light shading.

This actually how the intuition and the formula of an LTC originated: wecrafted this distribution to make sure that it would be easy to integrateover polygonal light sources. This distribution was originally meant forthis specific light type.

Page 6: and Disk-Light Shading with Linearly Transformed Cosines

Introduction

This year: LTC integration for other primitives

analytic integrationBRDF approximated by LTC

spherical segment

5

This year: LTC integration for other primitives

analytic integrationBRDF approximated by LTC

spherical segment

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In order to support more light types, we had to investigate whether LTCscould also be integrated over other kind of spherical domains.

In this slide we can see the case of line lights, which produce sphericalsegments. Segments are conceptually close to polygons – they aredefined by two vertices instead of more – but still, integrating an LTCover a line is not done in the same way as over a polygon.

We were able to work out an analytic integration formula for this case,which looks like the integration formula for polygons but with somedifferences.

Page 7: and Disk-Light Shading with Linearly Transformed Cosines

Introduction

This year: LTC integration for other primitives

approximateanalytic integration

BRDF approximated by LTC

spherical ellipse

6

This year: LTC integration for other primitives

approximateanalytic integration

BRDF approximated by LTC

spherical ellipse

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In the case of sphere or disk lighting, the spherical domain to consider isa spherical ellipse. Even though the problem looks very similar to the onefor polygons or lines, spherical ellipses involve a very different kind ofmath.

In this case, we could not find an exact analytic integration formula, butwe worked out one that we find accurate enough.

Page 8: and Disk-Light Shading with Linearly Transformed Cosines

Introduction

Organization of the talk

Ï Recap of LTCs (see material from last year for more details)

Ï Line lights

Ï Sphere/Disk lights

7

Organization of the talk

Ï Recap of LTCs (see material from last year for more details)

Ï Line lights

Ï Sphere/Disk lights

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In this talk, we will start with by recapping the background of LTCs(check last year’s material for more details) and their integration overpolygons, which is required for understanding the new stuff. Then, wewill talk about the new lights types: lines, spheres and disks.

Page 9: and Disk-Light Shading with Linearly Transformed Cosines

Recap of LTCs

8

Recap of LTCs

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Page 10: and Disk-Light Shading with Linearly Transformed Cosines

Recap of LTCs

distribution D∫PD(ω)dω

lines L

E [I ]

⇔=

9

distribution D∫PD(ω)dω

lines L

E [I ]

⇔=20

17-0

8-07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In order to understand how an LTC is defined, we use the followingintuition: a spherical distribution is equivalent to the infinite set ofsamples that can be chosen from this distribution.

• If we have a spherical distribution, we can generate an infinity of samples in this distribution.

• If we have an infinity of samples, we can reconstruct the distribution to arbitrary precision.

The distribution and the samples are simply two different descriptions ofthe same mathematical object.

Note: for illustration purposes, we’ve only drawn five samples in thefigure, but remember that conceptually we are talking about an infiniteset of samples. In the following, just assume that 5=∞ :-)

Page 11: and Disk-Light Shading with Linearly Transformed Cosines

Recap of LTCs

distribution D∫PD(ω)dω

lines L

E [I ]

⇔=

10

distribution D∫PD(ω)dω

lines L

E [I ]

⇔=20

17-0

8-07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Since they are the same object, changing one changes the other. If wechange the parameters of the distribution, the samples follow.Reciprocally, if we move the samples, the reconstructed distributionfollows.

Because the distribution and the samples are dual descriptions of thesame mathematical object, it means that a property associated with thedistribution usually has a dual property associated with the samples, andvice versa.

The idea of LTCs is to use linear transformations (3×3 matrices) thatchange the samples’ directions and hence the distribution.

BThis slide is animated (works with Acrobat Reader).

Page 12: and Disk-Light Shading with Linearly Transformed Cosines

Recap of LTCs

cosine

11

cosine

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

First, we start with this classic cosine distribution. In this figure weoverlaid five samples to make it easier to visualize the effect of the lineartransformation.

Page 13: and Disk-Light Shading with Linearly Transformed Cosines

Recap of LTCs

cosine roughness

λ 0 00 λ 00 0 1

12

cosine roughness

λ 0 00 λ 00 0 1

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

If we apply a scaling transform only on the xy -plane, we can see that thesamples are going to be compressed towards the average direction of thedistribution. This is how we create Phong-like distribution starting from acosine.

To aid the visualization, we also show a unit cube undergoing the samelinear transformation.

BThis slide is animated (works with Acrobat Reader).

Page 14: and Disk-Light Shading with Linearly Transformed Cosines

Recap of LTCs

cosine roughness anisotropy

λ 0 00 λ 00 0 1

λx 0 00 λy 00 0 1

13

cosine roughness anisotropy

λ 0 00 λ 00 0 1

λx 0 00 λy 00 0 1

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Applying a scaling transform with different magnitudes in the x and ydirections, we can see that the samples are going to be compressed morein one direction, which is introducing anisotropy to the distribution.

BThis slide is animated (works with Acrobat Reader).

Page 15: and Disk-Light Shading with Linearly Transformed Cosines

Recap of LTCs

cosine roughness anisotropy skewness

λ 0 00 λ 00 0 1

λx 0 00 λy 00 0 1

1 0 00 1 0λ 0 1

14

cosine roughness anisotropy skewness

λ 0 00 λ 00 0 1

λx 0 00 λy 00 0 1

1 0 00 1 0λ 0 1

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Applying a shear transform spreads the samples out on one side of thedistribution and compresses them on the opposite side. This isintroducing skewness to the distribution.

BThis slide is animated (works with Acrobat Reader).

Page 16: and Disk-Light Shading with Linearly Transformed Cosines

Recap of LTCs

cosine roughness anisotropy skewness random

λ 0 00 λ 00 0 1

λx 0 00 λy 00 0 1

1 0 00 1 0λ 0 1

15

cosine roughness anisotropy skewness random

λ 0 00 λ 00 0 1

λx 0 00 λy 00 0 1

1 0 00 1 0λ 0 1

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Finally, by combining all those effects in random matrices, we can createsophisticated spherical distributions with funny shapes.

BThis slide is animated (works with Acrobat Reader).

Page 17: and Disk-Light Shading with Linearly Transformed Cosines

Recap of LTCs

BRDF (Smith GGX) Linearly Transformed Cosines (fitted)

16

BRDF (Smith GGX) Linearly Transformed Cosines (fitted)

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

With this definition, Linearly Transformed Cosines offer a wideappearance space that can be used to efficiently approximate physicallybased BRDFs, especially the GGX one, which is used in many gameengines today. Of course, the approximation is not perfect, but itreproduces the main features of the BRDF for different roughness andincidence configurations.

BThis slide is animated (works with Acrobat Reader).

Page 18: and Disk-Light Shading with Linearly Transformed Cosines

Recap of LTCs

LTC-Polygonal Light Integration

cosine 3 M−1 Linearly Transformed Cosine← ←17

LTC-Polygonal Light Integration

cosine 3 M−1 Linearly Transformed Cosine← ←2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

From this definition, we also obtain the algorithm for integrating LTCsover polygons. If M is the linear transformation used to obtain this LTCdistribution from a cosine, we apply the inverse linear transformationM−1 on both the LTC distribution and the polygon. We obtain theoriginal cosine and a new polygon.

BThis slide is animated (works with Acrobat Reader).

Page 19: and Disk-Light Shading with Linearly Transformed Cosines

Recap of LTCs

LTC-Polygonal Light Integration

M−1P

M−1

P

∫M−1P

cosine(ω)dω =∫P

LTC(ω)dω18

LTC-Polygonal Light Integration

M−1P

M−1

P

∫M−1P

cosine(ω)dω =∫P

LTC(ω)dω2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

The important property is that the integral of the LTC over the polygonis exactly the integral of polygon transformed by M−1 and the cosine,which can be evaluated analytically (it’s the irradiance of the newpolygon and there is a closed-form expression for this).

That’s it for the recap of LTCs as presented last year.

At this point, the open question was: can we do something similar forother light types?

Page 20: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

19

Line Lights

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Page 21: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

Line light = light shaped as a line

Linear-Light Shading with Linearly Transformed Cosines, GPU Zen, 2017

20

Line light = light shaped as a line

Linear-Light Shading with Linearly Transformed Cosines, GPU Zen, 20172017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

The first new light type we will discuss is the line light.

The part of this talk dedicated to line lights is also the topic of a chapterin the GPU Zen book. A free preprint of our chapter is available athttps://labs.unity.com/article/linear-light-shading-linearly-transformed-cosines.

Page 22: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

“Linear Lights” confusion (linear vs. gamma lighting)

Shading Models for Point and Linear Sources, Nishita et al., 1985Shading Models for Linear and Area Light Sources, Bao and Peng, 1993 21

“Linear Lights” confusion (linear vs. gamma lighting)

Shading Models for Point and Linear Sources, Nishita et al., 1985Shading Models for Linear and Area Light Sources, Bao and Peng, 1993

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Note that in the book chapter we call them “linear lights” to beconsistent with the existing literature on the topic. However, when wereleased it, several people complained that the name was confusing (asthey understand linear lighting as opposed to gamma).

It’s too late to change that in the book chapter, but from now on wepropose to call them “line lights” instead, to avoid this confusion.

Page 23: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

Line light = infinitely thin cylinder light

line

= limR→0

1R

cylinderof radius R

22

Line light = infinitely thin cylinder light

line

= limR→0

1R

cylinderof radius R

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

A line light is defined as an infinitely thin cylinder light. Formally, theshading obtained with a line light is the limit of the ratio of the shadingobtained with a cylinder and the radius of the cylinder when the radiustends toward zero.

Page 24: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

Line lights can be used as an approximation for cylinder lights

line

×R ≈

cylinderof radius R

→ It works well with rough materials and/or thin/faraway cylinder lights23

Line lights can be used as an approximation for cylinder lights

line

×R ≈

cylinderof radius R

→ It works well with rough materials and/or thin/faraway cylinder lights

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

That means that the shading of a cylinder lights can be approximated bythe shading of a line light multiplied by the radius of the cylinder. This isa first-order approximation of the cylinder’s shading based on its valuesat the center of its spherical domain.

Hence, this approximation only works when the variation of thedistribution is small inside the spherical domain covered by the cylinder,i.e. when either

• the cylinder is thin,

• the cylinder is faraway from the shading point,

• the material is rough.

Page 25: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

Approximation for cylinder lights

cylinder line

GGX α= 0.10 24

Approximation for cylinder lights

cylinder line

GGX α= 0.10

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In the following examples, we compare a reference result obtained withMC integration over a cylinder and the analytic line approximation.

We can see that the rougher the material, the thinner the cylinder, or thefarther the shading point, the better the approximation.

Page 26: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

Approximation for cylinder lights

cylinder line

GGX α= 0.20 25

Approximation for cylinder lights

cylinder line

GGX α= 0.20

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In the following examples, we compare a reference result obtained withMC integration over a cylinder and the analytic line approximation.

We can see that the rougher the material, the thinner the cylinder, or thefarther the shading point, the better the approximation.

Page 27: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

Approximation for cylinder lights

cylinder line

GGX α= 0.50 26

Approximation for cylinder lights

cylinder line

GGX α= 0.50

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In the following examples, we compare a reference result obtained withMC integration over a cylinder and the analytic line approximation.

We can see that the rougher the material, the thinner the cylinder, or thefarther the shading point, the better the approximation.

Page 28: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

LTC-Line Light Integration

L

=

analytic solution?

∫LLTC(ω)dω

27

LTC-Line Light Integration

L

=

analytic solution?

∫LLTC(ω)dω

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In order to use line lights in our LTC framework, the technical problem tosolve is the integration of LTCs over line lights.

Page 29: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

LTC-Polygonal Light Integration

cosine 3 M−1 Linearly Transformed Cosine← ←28

LTC-Polygonal Light Integration

cosine 3 M−1 Linearly Transformed Cosine← ←2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

With polygonal lights, the trick is to multiply the polygon by the inversematrix M−1 in order to go back to the original cosine configuration.

Page 30: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

LTC-Polygonal Light Integration

M−1P

M−1

P

∫M−1P

cosine(ω)dω =∫P

LTC(ω)dω29

LTC-Polygonal Light Integration

M−1P

M−1

P

∫M−1P

cosine(ω)dω =∫P

LTC(ω)dω2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In the original cosine configuration, we just need to integrate the polygonover the cosine, which is simple to do since there is an analytic solutionfor this.

Page 31: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

LTC-Line Light Integration

cosine 3 M−1 Linearly Transformed Cosine← ←30

LTC-Line Light Integration

cosine 3 M−1 Linearly Transformed Cosine← ←2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

The integration over line lights is performed in the same way: we applythe inverse linear transformation to the line light and we obtain anotherline light in the cosine configuration.

Page 32: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

LTC-Line Light Integration (does not work!)

M−1L

M−1

L

∫M−1L

cosine(ω)dω 6=∫LLTC(ω)dω

31

LTC-Line Light Integration (does not work!)

M−1L

M−1

L

∫M−1L

cosine(ω)dω 6=∫LLTC(ω)dω20

17-0

8-07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

However, this does not work. The integral in the cosine configurationdoes not match the integral in the LTC configuration.

Page 33: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

LTC-Line Light Integration (infinitesimal thickness change)

M−1L

M−1

L

1‖MT ω⊥‖

∫M−1L

cosine(ω)dω =∫LLTC(ω)dω

32

LTC-Line Light Integration (infinitesimal thickness change)

M−1L

M−1

L

1‖MT ω⊥‖

∫M−1L

cosine(ω)dω =∫LLTC(ω)dω

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

There is one subtlety: the result we are looking for is not just the integralof the cosine over the transformed line light. The problem is that eventhough the line light is infinitely thin, it still has a virtual infinitely smallthickness, which is affected by the linear transformation. We need toaccount for this change to obtain the correct answer. Fortunately, it canbe obtained by multiplying the result by the factor 1

‖MT ω⊥‖ , where ω⊥ isthe direction orthonormal to both the light and the direction towards thelight. The amount this direction ω⊥ is affected by the lineartransformation yields how much the infinitely small thickness changes.

More details about this result and its proof are provided in the associatedbook chapter.

Page 34: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

Approximation for thin rectangle lights

cylinder rectangle

Same equation as for cylinder approximation with an additional dot product33

Approximation for thin rectangle lights

cylinder rectangle

Same equation as for cylinder approximation with an additional dot product

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Besides cylinders, line lights can also be used as an approximation forthin rectangle lights. We show that the result is simply obtained bymodulating the shading of the cylinder light with the cosine of theorientation of the thin rectangle light.

The line-light approximation for thin rectangle lights works best underthe same conditions as for cylinders: high roughness, or thin lights, orfaraway lights.

Page 35: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

Approximation for thin rectangle lights

rectangle line

GGX α= 0.10 34

Approximation for thin rectangle lights

rectangle line

GGX α= 0.10

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In the following examples, we compare a reference result obtained withMC integration over a rectangle light and the analytic line approximation.

We can see that the rougher the material, the thinner the rectangle, orthe farther the shading point, the better the approximation.

Page 36: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

Approximation for thin rectangle lights

rectangle line

GGX α= 0.20 35

Approximation for thin rectangle lights

rectangle line

GGX α= 0.20

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In the following examples, we compare a reference result obtained withMC integration over a rectangle light and the analytic line approximation.

We can see that the rougher the material, the thinner the rectangle, orthe farther the shading point, the better the approximation.

Page 37: and Disk-Light Shading with Linearly Transformed Cosines

Line Lights

Approximation for thin rectangle lights

rectangle line

GGX α= 0.50 36

Approximation for thin rectangle lights

rectangle line

GGX α= 0.50

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In the following examples, we compare a reference result obtained withMC integration over a rectangle light and the analytic line approximation.

We can see that the rougher the material, the thinner the rectangle, orthe farther the shading point, the better the approximation.

Page 38: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights

37

Sphere/Disk Lights

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Page 39: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights

Spheres, disks, ellipses, and ellipsoids

38

Spheres, disks, ellipses, and ellipsoids

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

The next light types we will investigate are spheres and disks.

Page 40: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights

Spheres can be handled as disks

simple formula→

sphere light disk lightcovering same solid angle

39

Spheres can be handled as disks

simple formula→

sphere light disk lightcovering same solid angle20

17-0

8-07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

The first observation is that solving for sphere lights is a subset of solvingfor disk lights. Indeed, a sphere can always be replaced by a disk thatcovers the same solid angle. There is a simple analytic formula to do this.

Page 41: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights

Ellipsoids can be handled as ellipses

L−1

→ → L→ellipsoid sphere disk ellipse

Analytical Calculation of the Solid Angle Subtended by an Arbitrarily PositionedEllipsoid to a Point Source, Heitz 2017 40

Ellipsoids can be handled as ellipses

L−1

→ → L→ellipsoid sphere disk ellipse

Analytical Calculation of the Solid Angle Subtended by an Arbitrarily PositionedEllipsoid to a Point Source, Heitz 2017

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

The second observation is that, similarly, solving for ellipsoid lights is asubset of solving for ellipse lights. Indeed, an ellipsoid can always bereplaced by an ellipse that covers the same solid angle.

We recently published our method for computing this ellipse in thejournal Nuclear Instruments and Methods in Physics Research. A freepreprint of this paper is available athttps://labs.unity.com/article/analytical-calculation-solid-angle-subtended-arbitrarily-positioned-ellipsoid-point-source.

Note that the solution is directly inspired by our LTC intuition: transformlinearly to a simpler problem where the solution is known, then transformback.

Page 42: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights

Spheres, disks, ellipses, and ellipsoids

Ï Spheres can be handled as disks

Ï Disks are a special case of ellipses

Ï Ellipsoids can be handled as ellipses

→ Everything boils down to ellipses

41

Spheres, disks, ellipses, and ellipsoids

Ï Spheres can be handled as disks

Ï Disks are a special case of ellipses

Ï Ellipsoids can be handled as ellipses

→ Everything boils down to ellipses2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

As a result, everything boils down to integrating LTCs over ellipses. Thisis the problem we will focus on.

Page 43: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights

LTC-Ellipse Light Integration

cosine M−1 Linearly Transformed Cosine← ←42

LTC-Ellipse Light Integration

cosine M−1 Linearly Transformed Cosine← ←2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

We use the same trick as for polygons and lines: we apply the inverselinear transform M−1 to the ellipse to go back to the original cosineconfiguration.

Note that a linearly transformed ellipse remains an ellipse.

BThis slide is animated (works with Acrobat Reader).

Page 44: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights

LTC-Ellipse Light Integration

M−1E

M−1

←E

∫M−1E

cosine(ω)dω =∫E

LTC(ω)dω43

LTC-Ellipse Light Integration

M−1E

M−1

←E

∫M−1E

cosine(ω)dω =∫E

LTC(ω)dω2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

As for the polygon, the integral of the LTC over the ellipse is the integralof the cosine over the new ellipse, which defines a spherical ellipse.

Page 45: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights

Problem: the diffuse-ellipse integral has no closed form

E

=

no analytic solution7

∫E

cosine(ω)dω

44

Problem: the diffuse-ellipse integral has no closed form

E

=

no analytic solution7

∫E

cosine(ω)dω

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

There is a problem though: the cosine distribution does not have ananalytic integral over a spherical ellipse like it has for spherical polygons.

(Except in special cases – more on this later.)

Page 46: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights

Trick: replace ellipse with a sphere

sphere withsame

solid angleand

average direction

no analytic solution 7 analytic solution 3 45

Trick: replace ellipse with a sphere

sphere withsame

solid angleand

average direction

no analytic solution 7 analytic solution 3

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In order to overcome this problem, we approximate the ellipse with asphere that covers a solid-angle domain of the same area and with thesame average direction. The advantage is that the cosine can beintegrated analytically over the sphere.

Note that this approximation needs to occur after the lineartransformation of the ellipse by matrix M−1, once we are solving acosine-ellipse integration problem.

Note: for optimization purposes, we already used the same approximationfor polygons, since it is cheaper than using their exact analytic integral(which, in the general case, involves clipping). For more details, see ourpresentation: http://blog.selfshadow.com/publications/s2016-advances/

Page 47: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights

Trick: replace ellipse by sphereapproximation reference approximation reference

46

Trick: replace ellipse by sphereapproximation reference approximation reference

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In practice, the bias introduced by this approximation is almost negligible.

This is because the cosine distribution is very low frequency. As such, theprecise shape of its integration domain does not really matter so long asthe location and area of the integration domain are preserved.

Page 48: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights

Trick: replace ellipse by sphere

= ≈

arbitrarily oriented front-facing sphereellipse ellipse approximation

47

Trick: replace ellipse by sphere

= ≈

arbitrarily oriented front-facing sphereellipse ellipse approximation

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

An intermediate step for computing the approximate sphere is tocompute the front-facing ellipse that covers the same solid-angle domain.

Page 49: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

48

Sphere/Disk Lights: Practice

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

We will now cover disk lighting with LTCs in more detail.

First we’ll review the complete process step by step, then we will cover afew practical issues that we hit and the solutions we found.

Page 50: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Transform center C and scaled axes V1 and V2 by M−1:

49

Transform center C and scaled axes V1 and V2 by M−1:

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

As we mentioned earlier, the first step in the process is to transform thedisk by the inverse linear transform M−1, after which we have an ellipsein the cosine configuration.

What we actually do here is to transform the two scaled axes of theellipse, V1 and V2, and its center, C .

Page 51: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Problem: V1 and V2 are no longer orthogonal

50

Problem: V1 and V2 are no longer orthogonal

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

We’re now in the cosine configuration – great!

There’s just one problem: the transformed vectors are no longerorthogonal.

Page 52: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Solution: solve 2D eigensystem → new axes

x

51

Solution: solve 2D eigensystem → new axes

x

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

The solution is to solve a 2D eigensystem from the vectors.

From the resulting eigenvalues and eigenvectors, we can determine theaxes of the new ellipse.

Page 53: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Calculate front-facing ellipse

52

Calculate front-facing ellipse

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Next we find a front-facing ellipse that has the same solid angle as theprevious ellipse.

As we mentioned a little earlier, this is an intermediate step.

Page 54: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Approximate with a sphere → lighting result

53

Approximate with a sphere → lighting result

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

The front-facing ellipse allows us to determine a sphere that (again) hasthe same solid angle, as well as the same average direction.

With this, we can calculate the LTC-ellipse light integral. (Or anapproximation thereof.)

Page 55: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Step 2: solve 2D eigensystem

54

Step 2: solve 2D eigensystem

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Okay, so that was the complete process we need to go through tocalculate the illumination from an elliptical light (or an ellipsoid, circulardisk or sphere).

Now let’s look at step 2 – solving a 2D eigensystem – in more detail.

Page 56: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Step 2: solve 2D eigensystem

Q =[V1 ·V1 V1 ·V2V1 ·V2 V2 ·V2

]=

[q11 q12q12 q22

],

Eigenvalues:

e1 = 12

(tr(Q)−

√tr(Q)2−4det(Q)

),

e2 = 12

(tr(Q)+

√tr(Q)2−4det(Q)

).

Problem: if ||V1||À ||V2|| (or vice versa) → loss of precision55

Step 2: solve 2D eigensystem

Q =[V1 ·V1 V1 ·V2V1 ·V2 V2 ·V2

]=

[q11 q12q12 q22

],

Eigenvalues:

e1 = 12

(tr(Q)−

√tr(Q)2−4det(Q)

),

e2 = 12

(tr(Q)+

√tr(Q)2−4det(Q)

).

Problem: if ||V1||À ||V2|| (or vice versa) → loss of precision

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

First we form a matrix of dot products from V1 and V2. After that wecan calculate the eigenvalues and from there the eigenvectors (whichwe’ll cover shortly). From these we can determine the new axes.

However, problems arise when the length V1 is much greater than V2, orvice versa. These lengths are squared, leading to many orders ofmagnitude difference between the leading diagonal elements of the matrix(q11 and q22).

Chaos ensues, since the large value swamps the subsequent calculations.The end result is that the smaller eigenvalue can end up being zeroinstead of its true value.

Page 57: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

56

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Here’s an example of artifacts that can occur in this situation.

In this case the light is almost perpendicular to the viewer.

Note: we’ve boosted the exposure to make the problems more obvious.

Page 58: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Solution: we can work with√Q instead

√Q = 1

t

[q11+d q12q12 q22+d

],

where

t =√

tr(Q)+2d = tr(√Q),

d =√det(Q) = det(

√Q).

Eigenvalues:pe1 = 1

2

(t−

√t2−4d

),

pe2 = 1

2

(t+

√t2−4d

).

57

Solution: we can work with√Q instead

√Q = 1

t

[q11+d q12q12 q22+d

],

where

t =√

tr(Q)+2d = tr(√Q),

d =√det(Q) = det(

√Q).

Eigenvalues:pe1 = 1

2

(t−

√t2−4d

),

pe2 = 1

2

(t+

√t2−4d

).20

17-0

8-07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Fortunately there’s a neat trick we can use here: instead of extracting theeigenvalues from Q directly, we can use

√Q instead. Because Q is

positive definite, there is one unique solution.

As you might expect, working with the square-root matrix brings theleading diagonal values much closer together, resulting in far more stablecomputations.

Afterwards, we simply need to square the eigenvalues of√Q to obtain

the eigenvalues of Q.

Fun fact: the intermediate terms here, t and d , are the trace anddeterminant of

√Q. So you can actually express

√Q in terms of itself.

Page 59: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Faster and more stable:

e1 = (u−v)2,

e2 = (u+v)2,

where

u = 12

√tr(Q)−2

√det(Q),

v = 12

√tr(Q)+2

√det(Q),

and

tr(Q)= q11+q22,

det(Q)= q11q22−q212.

58

Faster and more stable:

e1 = (u−v)2,

e2 = (u+v)2,

where

u = 12

√tr(Q)−2

√det(Q),

v = 12

√tr(Q)+2

√det(Q),

and

tr(Q)= q11+q22,

det(Q)= q11q22−q212.

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In practice we use the following for computing e1 and e2, expressed interms of the trace and determinant of the original matrix Q. This savessome operations and further improves precision.

Page 60: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Eigenvectors:

E1 = q12V1+ (e1−q11)V2,

E2 = q12V1+ (e2−q11)V2.

→ axes

Vx =E1/||E1||,Vy =E2/||E2||.

→ extents

lx = 1/pe1,

ly = 1/pe2.

59

Eigenvectors:

E1 = q12V1+ (e1−q11)V2,

E2 = q12V1+ (e2−q11)V2.

→ axes

Vx =E1/||E1||,Vy =E2/||E2||.

→ extents

lx = 1/pe1,

ly = 1/pe2.20

17-0

8-07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Once we have the eigenvalues, we can then determine the eigenvectors.

From there it’s a simple matter of extracting the axes and extents fromthe eigensystem.

Page 61: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

More stable:

if q11 > q22

E1 = q12V1+ (e1−q11)V2,

E2 = q12V1+ (e2−q11)V2,

else

E1 = q12V2+ (e1−q22)V1,

E2 = q12V2+ (e2−q22)V1.

In fact, this alone fixes most issues!60

More stable:

if q11 > q22

E1 = q12V1+ (e1−q11)V2,

E2 = q12V1+ (e2−q11)V2,

else

E1 = q12V2+ (e1−q22)V1,

E2 = q12V2+ (e2−q22)V1.

In fact, this alone fixes most issues!

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In practice, care is also needed when it comes to computing theeigenvectors. Depending on the relative magnitude of q11 and q22 we useone set of equations or another.

This alone can fix a lot of the stability issues we’ve observed with thisstage of the process, but not the particular failure case we showed earlier.

Page 62: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

61

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Speaking of which, here are the artifacts again...

Page 63: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

62

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

...and here is the result from using√Q. The failure cases are gone and

we now have a smooth result, as expected.

Page 64: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Achievement unlocked!

63

Achievement unlocked!

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

So, “achievement unlocked”: we now have a valid ellipse in the cosineconfiguration.

The next part of the process is to find a front-facing ellipse with thesame solid angle. Both the current ellipse and the front-facing ellipse areconic sections of a cone (with the apex at the shading point), shown herein light grey.

Page 65: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Cone = spherical quadric

[x y z

]Q

xyz

= 0,

Perform eigendecomposition of Q:

Q = [V +

1 V +2 V −] e+1 0 0

0 e+2 00 0 e−

[V +

1 V +2 V −]T

V − → direction to new ellipse center = average direction

e+1 ,e+2 ,e− → extents of new ellipse → solid angle64

Cone = spherical quadric

[x y z

]Q

xyz

= 0,

Perform eigendecomposition of Q:

Q = [V +

1 V +2 V −] e+1 0 0

0 e+2 00 0 e−

[V +

1 V +2 V −]T

V − → direction to new ellipse center = average direction

e+1 ,e+2 ,e− → extents of new ellipse → solid angle

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

This cone is described by a spherical quadric, which again we’ll call Q,just to confuse you. :-) We won’t go into the details of calculating Q heresince it’s not particularly important for this presentation. Instead, pleasesee the technical report referred to earlier and at the end of the slides.

The important point is that if we again perform an eigendecomposition –this time on a 3×3 matrix – we can find the axes and extents of thefront facing ellipse. However, instead of the axes, what we are interestedin is the direction through the center of the front-facing ellipse, i.e. theaverage direction. This is given by a third eigenvector V −.

From the extents we can calculate the solid angle of the ellipse. We thenreplace the front-facing ellipse with a sphere that has the same averagedirection and solid angle, from which we can compute the lightingintegral.

Page 66: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Problem: eigendecomposition in a shader is tricky!

Don’t copy code from the internet:

Eigenvalue algorithm: 3 x 3 matrices, Wikipedia

65

Problem: eigendecomposition in a shader is tricky!

Don’t copy code from the internet:

Eigenvalue algorithm: 3 x 3 matrices, Wikipedia2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Unfortunately, 3D eigendecomposition is a lot less straightforward thanthe 2D case we dealt with earlier.

The snippet shown here – taken from Wikipedia – looked appealing asit’s fairly compact compared to some other implementations we lookedat. Sadly it wasn’t robust in this context.

Page 67: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

66

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Here is an example of the kind of problems you can run into.

Page 68: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Solution: use a robust cubic solver

Do copy code from the internet:

How to solve a cubic equation, revisited, Peters, 201667

Solution: use a robust cubic solver

Do copy code from the internet:

How to solve a cubic equation, revisited, Peters, 2016

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Our solution came from a blog post by Christoph Peters. He had used acubic polynomial solver from Jim Blinn in the context of his MomentShadow Mapping mapping work.

Blinn’s approach – described in How to Solve a Cubic Equation: Part1...5 – was designed to handle tricky cases robustly and (relatively)efficiently on a GPU, where only single-precision floating point iscurrently feasible.

Page 69: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Solution: use a robust cubic solver

Eigenvalues are the roots of

det(e I −Q)= 0.

This is a cubic polynomial

e3− tr(Q)e2− 12

(tr(Q2)− tr2(Q)

)e−det(Q)= 0.

In practice: use “full Blinn” solution

68

Solution: use a robust cubic solver

Eigenvalues are the roots of

det(e I −Q)= 0.

This is a cubic polynomial

e3− tr(Q)e2− 12

(tr(Q2)− tr2(Q)

)e−det(Q)= 0.

In practice: use “full Blinn” solution2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

The reason this can be used is that the eigenvalues are the roots ofdet(e I −Q), which if you expand it out is a cubic.

Christoph was able to take some shortcuts for his application, but wefound that, for complete robustness, we needed to use the full algorithm.

Page 70: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

69

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Here’s the image showing the artifacts again.

Page 71: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

70

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Now here’s the same configuration using Blinn’s cubic solver. Just asbefore, the results are now smooth.

Page 72: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Front-facing ellipse → sphere

71

Front-facing ellipse → sphere

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

The finish line is now in sight. We just need to replace the front-facingellipse with a sphere and calculate the lighting. There are just a couple ofdetails worth touching on here.

Page 73: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

In practice: use projected solid angle (vs solid angle)

E = L1L2√(1+L2

1)(1+L22)

,

where L1 and L2 are the extents of the front-facing ellipse

Exact and simpler

Handbook of Essential Formulae and Data on Heat Transfer for Engineers,Wong, 1977

72

In practice: use projected solid angle (vs solid angle)

E = L1L2√(1+L2

1)(1+L22)

,

where L1 and L2 are the extents of the front-facing ellipse

Exact and simpler

Handbook of Essential Formulae and Data on Heat Transfer for Engineers,Wong, 197720

17-0

8-07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In practice we calculate the projected (cosine-weighted) solid angle E ,relative to the average direction. This is because it has a closed formwhen the ellipse is parallel to a differential element, as is the case herewith our front-facing ellipse.

Source: http://www.thermalradiation.net/sectionb/B-18.html

Page 74: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Diffuse-sphere integral

cosθ

E

θ

73

Diffuse-sphere integral

cosθ

E

θ

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Once we have the projected solid angle, we can obtain the lightingintegral for our shading point by looking up into a precomputed tableparameterized by E and the angle between the average direction and thesurface normal.

Because the function is very smooth, a 64×64 table is enough. Thisrepresents a total memory footprint of 8KB at half-float precision.

Page 75: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Comparison to previous work

Drobot2014 Lecocq2017 Linearly Transformed Cosines

Physically based area lights, in GPU Pro 2014, Michal Drobot

Accurate analytic approximations for real-time specular area lighting,Lecocq et al., I3D 2016.

74

Comparison to previous work

Drobot2014 Lecocq2017 Linearly Transformed Cosines

Physically based area lights, in GPU Pro 2014, Michal Drobot

Accurate analytic approximations for real-time specular area lighting,Lecocq et al., I3D 2016.

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Previously, [Drobot2014] used a point approximation, which produced anincorrect highlight shape (shown here) with longer-tailed distributionssuch as GGX.

In the more recent work of Lecocq et al., the authors approximated a disksource with a ’spinning’ polygon. While this is an ingenious idea, it hassome artifacts in certain configurations, such as in the image shown here.

In comparison, we believe that our disk-light method is free of suchlimitations and produces accurate results in all configurations.

Page 76: and Disk-Light Shading with Linearly Transformed Cosines

Sphere/Disk Lights: Practice

Comparison to previous work

Textured quad Reference

75

Comparison to previous work

Textured quad Reference

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

In our paper from last year, we showed a limitation of using a texturedquad light to approximate a disk: it fails to produce the elongatedhighlights of the ground-truth version and there can also be someblockiness.

In contrast, our new disk-light method produces the correct highlightshape.

Page 77: and Disk-Light Shading with Linearly Transformed Cosines

Related Technical Paper

A Spherical Cap Preserving Parameterization for Spherical DistributionsSIGGRAPH 2017 Technical Paper (Thursday, 3 August, 9:00 am - 10:30 am)Jonathan Dupuy, Eric Heitz and Laurent Belcour (Unity Technologies)

pivot transformation

76

A Spherical Cap Preserving Parameterization for Spherical DistributionsSIGGRAPH 2017 Technical Paper (Thursday, 3 August, 9:00 am - 10:30 am)Jonathan Dupuy, Eric Heitz and Laurent Belcour (Unity Technologies)

pivot transformation

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

This year at SIGGRAPH 2017, we also present a technical paper thatoffers another approach for sphere lights. This paper introduces a newtransformation, based on conformal geometry, that preserves sphericalcaps. We use this transformation to parameterize spherical distributions,which can be integrated analytically over spherical caps.

This paper is in the same spirit as our LTC paper from last year, but withan emphasis on sphere lights instead of polygonal lights: the sphericaldistribution is crafted especially for offering specific properties for spherelights. This is thus another complementary approach to this problem.

This paper and associated material can be found athttps://labs.unity.com/article/spherical-cap-preserving-parameterization-spherical-distributions

Page 78: and Disk-Light Shading with Linearly Transformed Cosines

Performance

polygon line disk sphere0.44ms 0.43ms 0.64ms 0.64ms performance per light:

NVIDIA 980 Ti1080p full-screen quad

MSAA ×1

77

polygon line disk sphere0.44ms 0.43ms 0.64ms 0.64ms performance per light:

NVIDIA 980 Ti1080p full-screen quad

MSAA ×1

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

Here are some performance figures for each of the different light types.

These numbers come from an updated version of our BGFX demo withthe Sponza scene and single light. The scene is forward shaded (with az-prepass), and the specular and diffuse components are rendered asseparate passes. As such, the true per-pixel lighting cost is likely to belower in practice. Still, the numbers are useful for relative comparison.

Note: the polygon timing is for a quad light, and this implementationincludes the optimizations we presented in the Advances in Real-TimeRendering course at SIGGRAPH last year. (The unoptimized version is0.58ms.)

Page 79: and Disk-Light Shading with Linearly Transformed Cosines

Future Work

Ï Improve performance of disk and line lights

Ï Thorough error analysis → more performance?

Ï Code updates: texturing, ground truth, etc.

https://github.com/selfshadow/ltc_code

78

Ï Improve performance of disk and line lights

Ï Thorough error analysis → more performance?

Ï Code updates: texturing, ground truth, etc.

https://github.com/selfshadow/ltc_code

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

We believe that our current line and disk light implementations could beoptimized – our focus up until now had been on accuracy and robustness.

A more thorough analysis of the precision issues we encountered with disklights might allow us to switch to faster methods in some cases, therebyfurther improving performance.

Finally, we have released code for all of our methods and hope to makeadditional updates to this repository in the future.

Page 80: and Disk-Light Shading with Linearly Transformed Cosines

Associated Materialhttps://labs.unity.com/article/real-time-line-and-disk-light-shading-linearly-transformed-cosines

Ï These slides with speaker notes

Ï WebGL demos for all light types (polygon, line, disk, sphere)

Ï Linear-Light Shading with Linearly Transformed Cosinesfree preprint of the GPU Zen chapter

Ï Computing a front-facing ellipse that subtends the same solid angle as anarbitrarily oriented ellipsefree preprint of the article

Ï Analytical calculation of the solid angle subtended by an arbitrarily positionedellipsoid to a point sourcetechnical report

79

https://labs.unity.com/article/real-time-line-and-disk-light-shading-linearly-transformed-cosines

Ï These slides with speaker notes

Ï WebGL demos for all light types (polygon, line, disk, sphere)

Ï Linear-Light Shading with Linearly Transformed Cosinesfree preprint of the GPU Zen chapter

Ï Computing a front-facing ellipse that subtends the same solid angle as anarbitrarily oriented ellipsefree preprint of the article

Ï Analytical calculation of the solid angle subtended by an arbitrarily positionedellipsoid to a point sourcetechnical report

2017

-08-

07

Real-Time Line- and Disk-Light Shadingwith Linearly Transformed Cosines

All associated material can be found athttps://labs.unity.com/article/real-time-line-and-disk-light-shading-linearly-transformed-cosines.