Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann...

48
Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH 2018 Course; Jan Novák, Iliyan Georgiev, Johannes Hanika, Jaroslav Křivánek, Wojciech Jarosz

Transcript of Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann...

Page 1: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Computer Graphics

- Volume Rendering -

Pascal Grittmann

Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH 2018 Course; Jan Novák, Iliyan Georgiev, Johannes Hanika, Jaroslav Křivánek, Wojciech Jarosz

Page 2: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Overview• So far:

• Light interactions with surfaces• Assume vacuum in and around objects

• This lecture:• Participating media• How to represent volumetric data• How to compute volumetric lighting effects• How to implement a very basic volume renderer

06.12.2018 CG - Volume Rendering - Pascal Grittmann 2

Page 3: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH
Page 4: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH
Page 5: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH
Page 6: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH
Page 7: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH
Page 8: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Fundamentals

06.12.2018 CG - Volume Rendering - Pascal Grittmann 8

Page 9: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Volumetric Effects• Light interacts not only with surfaces but everywhere inside!

• Volumes scatter, emit, or absorb light

06.12.2018 CG - Volume Rendering - Pascal Grittmann 9

http://coclouds.com http://wikipedia.org http://commons.wikimedia.org

Page 10: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Approximation: Model Particle Density• Modeling individual particles of a volume is, of course, not practical

• Instead, represent statistically using the average density

• (Same idea as, e.g., microfacet BSDFs)

06.12.2018 CG - Volume Rendering - Pascal Grittmann 10

Page 11: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Volume Representation• Many possibilities (particles, voxel octrees, procedural,…)

• A common approach: Scene objects can “contain” a volume

06.12.2018 CG - Volume Rendering - Pascal Grittmann 11

Page 12: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Volume Representation• Homogeneous:

• Constant density• Constant absorption, scattering, emission, • Constant phase function (later)

• Heterogeneous:• Coefficients and/or phase function vary across the volume• Can be represented using 3D textures• (e.g., voxel grid, procedural)

06.12.2018 CG - Volume Rendering - Pascal Grittmann 12

http://wikipedia.org

Page 13: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Data Acquisition• Real-world measurements via tomography

• Simulation, e.g.,• Fluids,• Fire and smoke,• Fog

06.12.2018 CG - Volume Rendering - Pascal Grittmann 13

https://docs.blender.org

Page 14: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Simulating VolumesMathematical Formulation of Volumetric Light Transport

06.12.2018 CG - Volume Rendering - Pascal Grittmann 14

Page 15: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

• Compute 𝐿𝑜(𝑥, 𝜔𝑜) using the rendering equation

So far: Assume Vacuum

06.12.2018 CG - Volume Rendering - Pascal Grittmann 15

𝑥

Page 16: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

• Compute 𝐿𝑜(𝑥, 𝜔𝑜) using the rendering equation

• Only a fraction 𝑇 𝑎, 𝑏 𝐿𝑜 𝑥, 𝜔𝑜 arrives at the eye

Volume Absorbs and Scatters Light

06.12.2018 CG - Volume Rendering - Pascal Grittmann 16

𝑥𝑎 𝑏

Page 17: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

• Compute 𝐿𝑜(𝑥, 𝜔𝑜) using the rendering equation

• Only a fraction 𝑇 𝑎, 𝑏 𝐿𝑜 𝑥, 𝜔𝑜 arrives at the eye

• Every point 𝑧 between 𝑎 and 𝑏 might emit light

Volume Emits Light

06.12.2018 CG - Volume Rendering - Pascal Grittmann 17

𝑥𝑎 𝑏

𝑧

Page 18: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

• Compute 𝐿𝑜(𝑥, 𝜔𝑜) using the rendering equation

• Only a fraction 𝑇 𝑎, 𝑏 𝐿𝑜 𝑥, 𝜔𝑜 arrives at the eye

• Every point 𝑧 between 𝑎 and 𝑏 might emit light

• Every point 𝑧 might be illuminated through the volume

Volume Scatters Light

06.12.2018 CG - Volume Rendering - Pascal Grittmann 18

𝑥𝑎 𝑏

𝑧

Page 19: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

AttenuationComputing Absorption and Out-Scattering

06.12.2018 CG - Volume Rendering - Pascal Grittmann 19

𝑥𝑎 𝑏

𝐿𝑖 = ?𝐿0 𝑥

http://commons.wikimedia.org

Page 20: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Attenuation = Absorption + Out-Scattering• Every point in the volume might absorb light or scatter it in other directions

• Modeled by absorption and scattering densities: 𝜇𝑎 𝑧 and 𝜇𝑠 𝑧

• Might depend on position, direction, time, wavelength,…

• For simplicity: we assume only positional dependence

06.12.2018 CG - Volume Rendering - Pascal Grittmann 20

𝑥𝑎 𝑏

𝑧

Page 21: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Computing Absorption – Intuition • Consider a small segment Δ𝑧

• Along that segment, radiance is reduced from 𝐿 to 𝐿′

• 𝐿′ = 𝐿 − 𝜇𝑎 𝐿 Δ𝑧

• Where 𝜇𝑎 is the percentage of radiance that is absorbed (per unit distance)

06.12.2018 CG - Volume Rendering - Pascal Grittmann 21

𝑎 𝑏Δ𝑧

𝐿𝐿′

Page 22: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Computing Absorption – Intuition • Consider a small segment Δ𝑧

• Along that segment, radiance is reduced from 𝐿 to 𝐿′

• 𝐿′ = 𝐿 − 𝜇𝑎 𝐿 Δ𝑧

• Where 𝜇𝑎 is the percentage of radiance that is absorbed (per unit distance)

• Lets rewrite this:

• Δ𝐿 = 𝐿′ − 𝐿 = −𝜇𝑎 𝐿 Δ𝑧

06.12.2018 CG - Volume Rendering - Pascal Grittmann 22

𝑎 𝑏Δ𝑧

𝐿𝐿′

Page 23: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Computing Absorption – Exponential Decay • Δ𝐿 = −𝜇𝑎 𝐿 Δ𝑧

• For infinitely small Δ𝑧, this becomes

• 𝑑𝐿 = −𝜇𝑎 𝐿 𝑑𝑧

• A differential equation that models exponential decay!

• Solution: 𝐿 𝑎 = 𝐿𝑜 𝑥 𝑒− 𝑏𝑎𝜇𝑎 𝑡 𝑑𝑡

06.12.2018 CG - Volume Rendering - Pascal Grittmann 23

𝑥

𝐿 𝑏 = 𝐿𝑜 𝑥

𝐿 𝑎

𝑎 𝑏Δ𝑧

𝐿𝐿′

Page 24: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Computing Out-Scattering• Same as absorption, only different factor!

• 𝜇𝑠 𝑧 : percentage of light scattered at point 𝑧

• 𝐿 𝑎 = 𝐿𝑜 𝑥 𝑒− 𝑏𝑎𝜇𝑠 𝑡 𝑑𝑡

06.12.2018 CG - Volume Rendering - Pascal Grittmann 24

𝑥𝑎 𝑏

𝑧

Page 25: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Computing Attenuation• Fraction of light that is neither absorbed nor out-scattered

• 𝜇𝑡 = 𝜇𝑎 + 𝜇𝑠

• 𝐿 𝑎 = 𝐿𝑜 𝑥 𝑒− 𝑏𝑎(𝜇𝑎 𝑡 +𝜇𝑠 𝑡 ) 𝑑𝑡

• Attenuation: 𝑇 𝑎, 𝑏 = 𝑒− 𝑏𝑎𝜇𝑡 𝑡 𝑑𝑡

06.12.2018 CG - Volume Rendering - Pascal Grittmann 25

𝑥𝑎 𝑏

𝑧

Page 26: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Computing Attenuation – Homogeneous • Simple case: constant density / attenuation

• 𝜇𝑡 𝑧 = 𝜇𝑡 ∀𝑧

• 𝑇 𝑎, 𝑏 = 𝑒− 𝑏𝑎𝜇𝑡 𝑡 𝑑𝑡 = 𝑒−(𝑎−𝑏)𝜇𝑡

06.12.2018 CG - Volume Rendering - Pascal Grittmann 26

𝑥𝑎 𝑏

𝑧

Page 27: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Estimating Attenuation• We need to solve another integral:

• 𝑇 𝑎, 𝑏 = 𝑒− 𝑏𝑎𝜇𝑡 𝑡 𝑑𝑡

• Many solutions, e.g., Monte Carlo integration (next semester)

• Simple solution: Quadrature

06.12.2018 CG - Volume Rendering - Pascal Grittmann 27

Page 28: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Estimating Attenuation – Ray Marching• We need to solve another integral:

• 𝑇 𝑎, 𝑏 = 𝑒− 𝑏𝑎𝜇𝑡 𝑡 𝑑𝑡

• Simple solution: Quadrature

• Ray marching: evaluate at discrete positions (fixed stepsize Δ𝑧)

• 𝑏𝑎𝜇𝑡 𝑡 𝑑𝑡 ≈ σ𝑖 𝜇𝑡(𝑧𝑖) Δ𝑧

06.12.2018 CG - Volume Rendering - Pascal Grittmann 28

𝑥𝑎 𝑏

𝑧1 𝑧2 𝑧3

Δ𝑧 Δ𝑧 Δ𝑧Δ𝑧

Page 29: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

EmissionExplosions!

06.12.2018 CG - Volume Rendering - Pascal Grittmann 29

𝑎 𝑏

𝑧

http://wikipedia.org

Page 30: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Every Point Might Emit Light• Assume 𝑧 emits 𝐿𝑒 𝑧 towards 𝑎

• Some of that light might be absorbed or out-scattered: It is attenuated

• 𝐿 𝑎 = 𝐿𝑒 𝑧 𝑇 𝑧, 𝑎

06.12.2018 CG - Volume Rendering - Pascal Grittmann 30

𝑎 𝑏

𝑧

Page 31: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Every Point Might Emit Light• Assume 𝑧 emits 𝐿𝑒 𝑧 towards 𝑎

• Some of that light might be absorbed or out-scattered: It is attenuated

• 𝐿 𝑎 = 𝐿𝑒 𝑧 𝑇 𝑧, 𝑎

• Happens at every point along the ray!

• 𝐿 𝑎 = 𝑎𝑏𝐿𝑒 𝑧 𝑇 𝑧, 𝑎 𝑑𝑧

• Another integral…

06.12.2018 CG - Volume Rendering - Pascal Grittmann 31

𝑎 𝑏

𝑧

Page 32: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Ray Marching for Emission• Same as before: integrate via quadrature

• 𝑎𝑏𝐿𝑒 𝑧 𝑇 𝑧, 𝑎 𝑑𝑧 ≈ σ𝑖 𝐿𝑒 𝑧𝑖 𝑇 𝑧𝑖 , 𝑎 Δ𝑧

• Attenuation 𝑇 𝑧𝑖 , 𝑎 estimated as before

06.12.2018 CG - Volume Rendering - Pascal Grittmann 32

𝑥𝑎 𝑏

𝑧1 𝑧2 𝑧3

Δ𝑧 Δ𝑧 Δ𝑧Δ𝑧

Page 33: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Ray Marching for Emission• Same as before: integrate via quadrature

• 𝑎𝑏𝐿𝑒 𝑧 𝑇 𝑧, 𝑎 𝑑𝑧 ≈ σ𝑖 𝐿𝑒 𝑧𝑖 𝑇 𝑧𝑖 , 𝑎 Δ𝑧

• Attenuation 𝑇 𝑧𝑖 , 𝑎 estimated as before

• Attenuation can be incrementally updated:• 𝑇 𝑧𝑖 , 𝑎 = 𝑇 𝑧𝑖−1, 𝑎 𝑇 𝑧𝑖 , 𝑧𝑖−1• (because it is an exponential function)

06.12.2018 CG - Volume Rendering - Pascal Grittmann 33

𝑥𝑎 𝑏

𝑧1 𝑧2 𝑧3

Δ𝑧 Δ𝑧 Δ𝑧Δ𝑧

Page 34: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

In-ScatteringAccounting for Reflections Inside the Volume

06.12.2018 CG - Volume Rendering - Pascal Grittmann 34

𝑎 𝑏

𝑧

Page 35: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Direct Illumination• Account for the (attenuated) direct illumination at every point 𝑧

• Similar to the rendering equation:

• 𝐿𝑜 𝑧, 𝜔𝑜 = Ω 𝐿𝑖 𝑥, 𝜔𝑖 𝑓𝑝 𝜔𝑖 , 𝜔𝑜 𝑑𝜔𝑖

• Integration over the whole sphere Ω

• The phase function 𝑓𝑝 takes on the role of the BSDF

06.12.2018 CG - Volume Rendering - Pascal Grittmann 35

𝑎 𝑏

𝑧

𝜔𝑖

𝜔𝑜

Page 36: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Phase Functions• 𝐿𝑜 𝑧, 𝜔𝑜 = Ω 𝐿𝑖 𝑥, 𝜔𝑖 𝒇𝒑 𝝎𝒊, 𝝎𝒐 𝑑𝜔𝑖

• Describe what fraction of light is reflected from 𝜔𝑖 to 𝜔𝑜

• Similar to BSDF for surface scattering

• Simplest example: isotropic phase function• 𝑓𝑝 𝜔𝑖 , 𝜔𝑜 =

1

4𝜋

• (energy conservation: Ω1

4𝜋𝑑𝜔 = 1)

06.12.2018 CG - Volume Rendering - Pascal Grittmann 36

Page 37: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Phase Functions: Henyey-Greenstein• Widely used

• Easy to fit to measured data

• 𝑓𝑝 𝜔𝑖 , 𝜔𝑜 =1

4𝜋

1−𝑔2

1+𝑔2+2𝑔 cos 𝜔𝑖,𝜔𝑜

32

• 𝑔: asymmetry (scalar)

• cos 𝜔𝑖 , 𝜔𝑜 : cosine of the angle formed by 𝜔𝑖 and 𝜔𝑜

06.12.2018 CG - Volume Rendering - Pascal Grittmann 37

Page 38: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Henyey-Greenstein: Asymmetry Parameter• 𝑔 = 0: isotropic

• Negative 𝑔: back scattering

• Positive 𝑔: forward scattering

06.12.2018 CG - Volume Rendering - Pascal Grittmann 38

http://coclouds.com

Forward Scattering

http://commons.wikimedia.org

Back Scattering

Page 39: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

How to Estimate Volume Direct Illumination• Reflected radiance at a point 𝑧: 𝐿𝑜 𝑧, 𝜔𝑜 = Ω 𝐿𝑖 𝑥, 𝜔𝑖 𝑓𝑝 𝜔𝑖 , 𝜔𝑜 𝑑𝜔𝑖

• In our framework:• Sum over all point lights (as for surfaces)• Trace shadow ray (as for surfaces)• Estimate attenuation along the shadow ray (as for surfaces)

06.12.2018 CG - Volume Rendering - Pascal Grittmann 39

𝑎 𝑏

𝑧

𝜔𝑖

𝜔𝑜

Page 40: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Ray Marching to Compute In-Scattering• Same as for emission

• Goal: estimate the integral 𝑎𝑏𝑇 𝑧, 𝑎 𝜇𝑠 𝑧 𝐿𝑖 𝑧 𝑓𝑝 𝑑𝑧

• Quadrature:

• 𝑎𝑏𝑇 𝑧, 𝑎 𝜇𝑠 𝑧 𝐿𝑖 𝑧 𝑓𝑝 𝑑𝑧 ≈ σ𝑖 𝑇 𝑧𝑖 , 𝑎 𝜇𝑠 𝑧 𝐿𝑖 𝑧𝑖 𝑓𝑝 Δ𝑧

06.12.2018 CG - Volume Rendering - Pascal Grittmann 40

𝑎 𝑏

𝑧1 𝑧2 𝑧3

Δ𝑧 Δ𝑧 Δ𝑧Δ𝑧

Page 41: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Ray Marching to Compute In-Scattering• Same as for emission

• Goal: estimate the integral 𝑎𝑏𝑇 𝑧, 𝑎 𝐿𝑖 𝑧 𝑓𝑝 𝑑𝑧

• Quadrature:

• 𝑎𝑏𝑇 𝑧, 𝑎 𝐿𝑖 𝑧 𝑓𝑝 𝑑𝑧 ≈ σ𝑖 𝑇 𝑧𝑖 , 𝑎 𝐿𝑖 𝑧𝑖 𝑓𝑝 Δ𝑧

• Attenuation 𝑇 𝑧𝑖 , 𝑎 estimated as before

• Attenuation can be incrementally updated:• 𝑇 𝑧𝑖 , 𝑎 = 𝑇 𝑧𝑖−1, 𝑎 𝑇 𝑧𝑖 , 𝑧𝑖−1• (because it is an exponential function)

06.12.2018 CG - Volume Rendering - Pascal Grittmann 41

𝑎 𝑏

𝑧1 𝑧2 𝑧3

Δ𝑧 Δ𝑧 Δ𝑧Δ𝑧

Page 42: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

Putting it all TogetherA Simple Volume Integrator

06.12.2018 CG - Volume Rendering - Pascal Grittmann 42

Page 43: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

A Simple Volume Integrator• Estimate direct illumination at x (as before)

• If volume: continue straight ahead until no volume (yields intersections y, z)

𝑥 𝑦 𝑧

06.12.2018 CG - Volume Rendering - Pascal Grittmann 43

Page 44: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

A Simple Volume Integrator• Estimate direct illumination at x (as before)

• If volume: continue straight ahead until no volume (yields intersections y, z)

• Ray marching to estimate attenuation, emission,

𝑥 𝑦 𝑧

06.12.2018 CG - Volume Rendering - Pascal Grittmann 44

Page 45: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

A Simple Volume Integrator• Estimate direct illumination at x (as before)

• If volume: continue straight ahead until no volume (yields intersections y, z)

• Ray marching to estimate attenuation, emission, and in-scattering• Shadow rays to the lights + ray marching to compute attenuation

𝑥 𝑦 𝑧

06.12.2018 CG - Volume Rendering - Pascal Grittmann 45

Page 46: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

A Simple Volume Integrator• Estimate direct illumination at x (as before)

• If volume: continue straight ahead until no volume (yields intersections y, z)

• Ray marching to estimate attenuation, emission, and in-scattering• Shadow rays to the lights + ray marching to compute attenuation

• Compute illumination at z (as before)

𝑥 𝑦 𝑧

06.12.2018 CG - Volume Rendering - Pascal Grittmann 46

Page 47: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

A Simple Volume Integrator• Estimate direct illumination at x (as before)

• If volume: continue straight ahead until no volume (yields intersections y, z)

• Ray marching to estimate attenuation, emission, and in-scattering• Shadow rays to the lights + ray marching to compute attenuation

• Compute illumination at z (as before)

• Add together:• Attenuated illumination from z• Volumetric emission along 𝑥𝑦• In-scattering along 𝑥𝑦• Direct illumination at 𝑥

𝑥 𝑦 𝑧

06.12.2018 CG - Volume Rendering - Pascal Grittmann 47

Page 48: Computer Graphics - Volume Rendering · Computer Graphics - Volume Rendering - Pascal Grittmann Using pictures from: Monte Carlo Methods for Physically Based Volume Rendering; SIGGRAPH

A Simple Volume Integrator• Estimate direct illumination at x (as before)

• If volume: continue straight ahead until no volume (yields intersections y, z)

• Ray marching to estimate attenuation, emission, and in-scattering• Shadow rays to the lights + ray marching to compute attenuation

• Compute illumination at z (as before)

• Add together:• Attenuated illumination from z• Volumetric emission along 𝑥𝑦• In-scattering along 𝑥𝑦• Direct illumination at 𝑥

𝑥 𝑦 𝑧

{Multiply by BTDF!

06.12.2018 CG - Volume Rendering - Pascal Grittmann 48