Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L...

46
Computer graphics III – Rendering equation and its solution Jaroslav Křivánek, MFF UK [email protected]

Transcript of Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L...

Page 1: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Computer graphics III – Rendering equation and its solution

Jaroslav Křivánek, MFF UK [email protected]

Page 2: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Global illumination – GI

2

Direct illumination

Page 3: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Review: Reflection equation

“Sum” (integral) of contributions over the hemisphere:

∫ ⋅→⋅=)(

iioiiior dcos),(),(),(x

xxxH

rfLL ωθωωωω

dωi Lo(x, ωo)

θo

n Li(x, ωi)

θi

Lr(x, ωo) ),(),(),(

or

oeoo

ωωω

xxx

LLL

+=

Total outgoing rad.

Emitted radiance

Reflected rad.

Page 4: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

From local reflection to global light transport

Reflection equation (local reflection)

Where does the incoming radiance Li(x, ωi) come from?

From other places in the scene !

x

r(x, ωi)

Li(x,ωi)

Lo( r(x, ωi), -ωi)

∫ ⋅→⋅+=)(

iioiiioeoo dcos),(),(),(),(x

xxxxH

rfLLL ωθωωωωω

= )),,(r(),( iioii ωωω −= xx LL

Ray casting function CG III (NPGR010) - J. Křivánek 2015

Page 5: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

From local reflection to global light transport

Plug for Li into the reflection equation

Incoming radiance Li drops out Outgoing radiance Lo at x described in terms of Lo at

other points in the scene

∫ ⋅→⋅−+

=

)(iioiiio

oeoo

dcos),()),,(r(

),(),(

x

xx

xx

HrfL

LL

ωθωωωω

ωω

CG III (NPGR010) - J. Křivánek 2015

Page 6: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Rendering equation

Remove the subscript “o” from the outgoing radiance:

Description of the steady state = energy balance in the scene

Rendering = calculate L(x, ωo) for all points visible through pixels, such that it fulfils the rendering equation

∫ →−+

=

)(iioiii

oeo

dcos),()),,(r(

),(),(

x

xx

xx

HrfL

LL

ωθωωωω

ωω

CG III (NPGR010) - J. Křivánek 2015

Page 7: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Reflection equation Describes local light reflection at a single point Integral that can be used to calculate the outgoing

radiance if we know the incoming radiance

Rendering equation Condition on the global distribution of light in scene Integral equation – unknown quantity L on both sides

Reflection equation vs. Rendering equation

∫ ⋅→⋅−+=)( iioiiioeo dcos),()),,(r(),(),(

xxxxx

H rfLLL ωθωωωωωω

∫ ⋅→⋅+=)( iioiiiooo dcos),(),(),(),(

xxxxx

H re fLLL ωθωωωωω

Similar form – different meaning

Page 8: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Rendering Equation – Kajiya 1986

CG III (NPGR010) - J. Křivánek 2015

Page 9: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Path tracing sketch

Page 10: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Recursive unwinding of the RE

Angular form of the RE

To calculate L(x, ωo), we need to calculate L(r(x, ω’), −ω’) for all directions ω’ around the point x

For the calculation of each L(r(x, ω’), −ω’), we need to do the same thing recursively,

etc.

∫ ⋅→⋅−+=)(

ooeo 'd'cos)',()'),',(r(),(),(x

xxxxH

rfLLL ωθωωωωωω

x

ω’ r(x, ω’)

ω’’

ωo

r( r(x,ω’), ω’)

CG III (NPGR010) - J. Křivánek 2015

Page 11: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Path tracing, v. zero (recursive form)

getLi (x, ω): y = traceRay(x, ω) return Le(y, –ω) + // emitted radiance Lr (y, –ω) // reflected radiance Lr(x, ω): ω′ = genUniformHemisphereRandomDir( n(x) ) return 2π * brdf(x, ω, ω′) * dot(n(x), ω′) * getLi(x, ω′)

CG III (NPGR010) - J. Křivánek 2015

Page 12: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Back to the theory: Angular and area form of the rendering equation

Page 13: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Angular vs. area form of the RE

Angular form integral over the hemisphere in incoming directions

Substitution 2

cosddr

A θω =

∫ ⋅→⋅−+

=

)(iioiii

oeo

dcos),()),,(r(

),(),(

x

xx

xx

HrfL

LL

ωθωωωω

ωω

CG III (NPGR010) - J. Křivánek 2015

Page 14: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Angular vs. area form of the RE

Area form Integral over the scene surface

∫ ↔⋅↔⋅→→⋅→+

=

Mr AVGfL

LL

yyxyxxyxy

xx

d)()()()(

),(),(

o

oeo

ω

ωω

2

coscos)(

yxyx yx

⋅=↔

θθG

visibility 1 … y visible from x 0 … otherwise

geometry term scene surface

CG III (NPGR010) - J. Křivánek 2015

Page 15: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Angular form

Add radiance contributions to a point from all directions

For each direction, find the nearest surface

Implementation in stochastic path tracing: For a given x, generate random direction(s), for each find

the nearest intersection, return the outgoing radiance at that intersection and multiply it with the cosine-weighted BRDF. Average the result of this calculation over all the generated directions over the hemisphere.

CG III (NPGR010) - J. Křivánek 2015

Page 16: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Area form

Sum up contributions to a point from all other points on the scene surface

Contribution added only if the two points are mutually visible

Implementation in stochastic path tracing: Generate randomly point y on scene geometry. Test

visibility between x and y. If mutually visible, add the outgoing radiance at y modulated by the geometry factor.

Typical use: direct illumination calculation for area

light sources

CG III (NPGR010) - J. Křivánek 2015

Page 17: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Most rendering algorithms = (approximate) solution of the RE

Local illumination (OpenGL) Only point sources, integral becomes a sum Does not calculate equilibrium radiance, is not really a

solution of the RE

Finite element methods (radiosity) [Goral, ’84] Discretize scene surface (finite elements) Disregard directionality of reflections: everything is

assumed to be diffuse Cannot reproduce glossy reflections

CG III (NPGR010) - J. Křivánek 2015

Page 18: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Most rendering algorithms = (approximate) solution of the RE

Ray tracing [Whitted, ’80] Direct illumination on diffuse and glossy surfaces due to

point sources Indirect illumination only on ideal mirror reflection /

refractions Cannot calculate indirect illumination on diffuse and glossy

scenes, soft shadows etc. …

Distributed ray tracing [Cook, ’84] Estimate the local reflection using the MC method Can calculate soft shadows, glossy reflections, camera

defocus blur, etc.

CG III (NPGR010) - J. Křivánek 2015

Page 19: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Most rendering algorithms = (approximate) solution of the RE

Path tracing [Kajiya, ’86] True solution of the RE via the Monte Carlo method Tracing of random paths (random walks) from the camera Can calculate indirect illumination of higher order

CG III (NPGR010) - J. Křivánek 2015

Page 20: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

From the rendering equation to finite element radiosity

Page 21: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

From the rendering equation to radiosity

Start from the area form of the RE:

The Radiosity method– assumptions Only diffuse surfaces (BRDF constant in ωi and ωo) Radiosity (i.e. radiant exitance) is spatially constant (flat)

over the individual elements

∫ ↔⋅↔⋅→→⋅→

+=

M r

e

AVGfL

LL

yyxyxxyxy

xx

d)()()()(

),(),(

o

oo

ω

ωω

CG III (NPGR010) - J. Křivánek 2015

Page 22: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

From the rendering equation to radiosity

Diffuse surfaces only The BRDF is constant in ωi and ωo

Outgoing radiance is independent of ωo and it is equal to radiosity B divided by π

∫ ↔⋅↔⋅→+=M

AVGLLL yyxyxxyxxx d)()()()(),(),( oeo πρωω

∫↔⋅↔

⋅⋅+=M

AVGBBB yyxyxyxxx d)()()()()()( e π

ρ

)(' yx ↔GCG III (NPGR010) - J. Křivánek 2015

Page 23: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

From the rendering equation to radiosity

Spatially constant (flat) radiosity B of the contributing surface elements ∑ ∫

=

↔⋅⋅+=

N

j Ajj

j

AGBBB1

,e d)(')()()( yyxxxx ρ

Radiosity of the j-th element

Geometry factor between surface element j and point x

CG III (NPGR010) - J. Křivánek 2015

Page 24: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

From the rendering equation to radiosity

Spatially constant (flat) radiosity of the receiving surface element i: Average radiosity over the element

∑ ∫ ∫

=

↔⋅⋅+=

==

N

j A Aij

ijii

Ai

ii

i j

i

AAGA

BB

ABA

B

1,,e, dd)('1

d)(1

xyyx

x

ρ

ijF … form factor

jdA

idA

jA

iA

CG III (NPGR010) - J. Křivánek 2015

Page 25: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Classic radiosity equation

System of linear equations

Form factors

Conclusion: the radiosity method is nothing but a way to solve the RE under a specific set of assumptions

∑=

⋅⋅+=N

jijjiii FBBB

1e, ρ

∫ ∫ ↔=i jA A

iji

ij AAGA

F ,, dd)('1xyyx

CG III (NPGR010) - J. Křivánek 2015

Page 26: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Radiosity method

Classical radiosity 1. Form facto calculation (Monte Carlo, hemicube, …) 2. Solve the linear system (Gathering, Shooting, …)

Stochastic radiosity Avoids explicit calculation of form factors Metoda Monte Carlo

Radiosity is not practical, not used

Scene subdivision -> sensitive to the quality of the geometry model (but in reality, models are always broken)

High memory consumption, complex implementation CG III (NPGR010) - J. Křivánek 2015

Page 27: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

The operator form of the RE

Page 28: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

RE is a Fredhom integral equation of the 2nd kind

General form the Fredholm integral equation of the 2nd kind

Rendering equation:

( ) ( ) ( , ) ( )f x g x k x x f x dx′ ′ ′= + ∫

∫ ⋅→⋅−+=)(

iioiiioeo dcos),()),,(r(),(),(x

xxxxH

rfLLL ωθωωωωωω

unknown function

known functions

equation “kernel”

CG III (NPGR010) - J. Křivánek 2015

Page 29: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Linear operators

Linear operators act on functions (as matrices act on vectors)

The operator is linear if the “acting” is a linear operation

Examples of linear operators

( ) ( )( )h x L f x=

( ) ( ) ( )L af bg a L f b L g+ = +

( )( ) ( , ) ( )

( )( ) ( )

K f x k x x f x dx

fD f x xx

′ ′ ′≡

∂≡

CG III (NPGR010) - J. Křivánek 2015

Page 30: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Transport operator

∫ ⋅→⋅≡)( iioiio dcos),(),(),)((

xxxx

H rfLLT ωθωωωω

Rendering equation

LTLL += e

CG III (NPGR010) - J. Křivánek 2015

Page 31: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Solution of the RE in the operator form

Rendering equation

Formal solution unusable in practice – the inverse cannot be

explicitly calculated

LTLL += e

e)( LLTI =−

e1)( LTIL −−=

CG III (NPGR010) - J. Křivánek 2015

Page 32: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Expansion of the rendering equation

Recursive substitution L

n-fold repetition yields the Neumann series

CG III (NPGR010) - J. Křivánek 2015

( )LTTLL

TLLTLTLLL

2ee

ee

e

++=

++=+=

LTLTL nn

i

i 1

0e

+

=

+= ∑

Page 33: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Expansion of the rendering equation

If T is a contraction (tj. ||T|| < 1, which holds for the RE), then

Solution of the rendering equation is then given by

CG III (NPGR010) - J. Křivánek 2015

0lim 1 =+

∞→LT n

n

∑∞

=

=0

ei

i LTL

Page 34: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

A different derivation of the Neumann series

Formal solution of the rendering equation

Proposition

Proof

...)( 21 +++=− − TTITI

ITTTTTI

TTITITITI

=+++−+++=

+++−=−− −

...)(...)(...)()()()(

322

21

e1)( LTIL −−=

CG III (NPGR010) - J. Křivánek 2015

Page 35: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Solution: Neumann series

Rendering equation

...e3

e2

ee ++++= LTLTTLLL

CG III (NPGR010) - J. Křivánek 2015

LTLL += e

LTLL += e

Page 36: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Progressive approximation

eL

eL

eLT eLTT eLTTT

ee LTL + e2

ee LTTLL ++ e3

e ... LTL ++

CG III (NPGR010) - J. Křivánek 2015

Page 37: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Progressive approximation

Each application of T corresponds to one step of reflection & light propagation

...e3

e2

ee ++++= LTLTTLLL

emission

direct illumination

one-bounce indirect illumination

two-bounce indirect illumination

OpenGL shading CG III (NPGR010) - J. Křivánek 2015

Page 38: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Contractivity of T

Holds for all physically correct models Follows from the conservation of energy

It means that repetitive application of the operator lower the remaining light energy (makes sense, since reflection/refraction cannot create energy)

Scenes with white or highly specular surfaces reflectivity close to 1 to achieve convergence, we need to simulate more bounces

of light

CG III (NPGR010) - J. Křivánek 2015

Page 39: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Alright, so what have we achieved?

We have replaced an integral equation by a sum of simple integrals

Great we know how to calculate integrals numerically (the Monte Carlo method), which means that we know how to solve the RE, and that means that we can render images, yay!

Recursive application to T corresponds to the recursive ray tracing from the camera

CG III (NPGR010) - J. Křivánek 2015

LTLL += e ∑∞

=

=0

ei

i LTL

Rendering equation

Solution through the Neumann series

Page 40: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

What exact integral are we evaluating, then?

CG III (NPGR010) - J. Křivánek 2015

[ ][ ]

∫∫∫

∫∫

+↔⋅↔⋅→→⋅

⋅↔⋅↔⋅→→⋅→

+↔⋅↔⋅→→⋅→

+=

M e

r

M re

M re

e

AAAL

AAVGf

VGfL

AVGfL

LL

žzy

zy

y

yxyxxy

zyzyxyzyz

yxyxxyxy

xx

ddd...)(

dd)()()(

)()()()(

d)()()()(

),(),(

o

o

oo

ω

ω

ωω

Page 41: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Paths vs. recursion: Same thing, depends on how we look at it

Paths in a high-dimensional path space

Recursive solution of a series of nested (hemi)spherical integrals:

CG III (NPGR010) - J. Křivánek 2015

...e3

e2

ee ++++= LTLTTLLL

...((( eeee ++++= LTLTLTLL

Page 42: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Recursive interpretation

Angular form of the RE

To calculate L(x, ωo) I need to calculate L(r(x, ω’), −ω’) for all directions ω’ around the point x.

For the calculation of each L(r(x, ω’), −ω’) I need to do the same thing recursively

etc.

∫ ⋅→⋅−+=)(

ooeo 'd'cos)',()'),',(r(),(),(x

xxxxH

rfLLL ωθωωωωωω

x

ω’ r(x, ω’)

ω’’

ωo

r( r(x,ω’), ω’)

CG III (NPGR010) - J. Křivánek 2015

We’ve seen this already, right? But unlike at the beginning of the lecture, by now we know this actually solves the RE.

Page 43: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Path tracing, v. zero (recursive form)

getLi (x, ω): y = traceRay(x, ω) return Le(y, –ω) + // emitted radiance Lr (y, –ω) // reflected radiance Lr(x, ω): ω′ = genUniformHemisphereRandomDir( n(x) ) return 2π * brdf(x, ω, ω′) * dot(n(x), ω′) * getLi(x, ω′)

CG III (NPGR010) - J. Křivánek 2015

Page 44: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Path tracing, v. 2012, Arnold Renderer

CG III (NPGR010) - J. Křivánek 2015

© 2012 Columbia Pictures Industries, Inc. All Rights Reserved.

Page 45: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos
Page 46: Rendering equation and its solution - Computer graphics ...jaroslav/teaching/2015... · r G V A L L y x y x x y x y y x x ( ) ( ) ( ) ( ) d ( , ) ( , ) o o e o ω ω ω 2 cos cos

Path tracing [Kajiya86]

Only one secondary ray at each intersection Random selection of interaction (diffuse reflection,

refraction, etc., …) Direct illumination: two strategies

Hope that the generated secondary ray hits the light source, or

Explicitly pick a point on the light source Trace hundreds of paths through each pixel and average

the result Advantage over distributed ray tracing: now branching of

the ray tree means no explosion of the number of rays with recursion depth

CG III (NPGR010) - J. Křivánek 2015