Overview
Introduction
Frequency Operators
Travel & Occlusion
Reflection & Refraction
Scattering & Absorption
Applications
Adaptive sampling & denoising
Upsampling
Density estimation
Antialiasing
Conclusion
Fourier Transform of Radiance
F [ L ] ( Ω ) = ∫ z ∈ R N L ( z ) e i 2 π Ω T δ z , where z = [ x , ω ]
This cannot in practice: global definition
Need to treat the whole scene at once
Actually not well-defined (discontinuous domain)
Local Fourier Transform of Radiance
local FT requires a window: W l :
F l [ L ] ( Ω ) = ∫ z ∈ R N L ( z ) W l ( z ) e i 2 π Ω T z , where z = [ x , ω ]
Interesting properties:
Makes the Fourier Transform well defined
The window increase the min frequency
Local Fourier Transform of Radiance
We aren't looking at point-wise radiance anymore
Local radiance around a main ray
Requires a parametrization
L(\mathbf{x}, \boldsymbol{\omega})
L(\mathbf{x} + \delta\mathbf{x}, \boldsymbol{\omega}+ \delta\boldsymbol{\omega})
Local Fourier Transform of Radiance
We aren't looking at point-wise radiance anymore
Local radiance around a main ray
Requires a parametrization
Local Fourier Transform of Radiance
We aren't looking at point-wise radiance anymore
Local radiance around a main ray
Requires a parametrization
Constraint: analytical forms
First order analysis (only consider linear properties)
In practice we represent the spectrum
Local Rendering Equation
Created with Snap
image/svg+xml
Created with Snap
Rendering Operators
Implementation example
Manipulation of the covariance matrix
Using Matlab's' syntax
Cov = {sxx, sxu;
sxu, suu};
First Step Operators: Surface Shading
Created with Snap
image/svg+xml
Created with Snap
Durand et al. 2005
Travel Operator
Created with Snap
image/svg+xml
Apply Fourier Transform
Created with Snap
Travel Operator
Travel is a shear in local space
Created with Snap Ω x Ω u
Tr = [1 , d; 0 , 1 ]
Cov = Tr' * Cov * Tr
Visibility Operator
Add frequencies in the spatial domain
Created with Snap Ω x Ω u
Occ = [o, 0 ; 0 , 0 ]
Cov = Cov + Occ
Visibility in Practice
Same as ajusting the local window
Compute the largest unoccluded disk along the ray
We will treat near misses the same way as near hit
Requires a special treatment/data-structure
Voxel grid
Distance field
Shadow map discontinuities
Shading Operators
Shading requires to decompose
Final travel to the surface (projection)
Material (Textures / BSDF)
Elements we won't cover
Foreshortenning scale the spatial componnent
Texture increase the spatial componnent
Durand et al. 2005
Curvature Operator
Created with Snap
image/svg+xml
Apply Fourier Transform
Created with Snap
Curvature Operator
Curvature shears angular frequencies
Created with Snap Ω x Ω u
Cv = [1 , 0 ; k, 1 ]
Cov = Cv' * Cov * Cv
Reflection Operator
The BRDF cuts the angular frequency
Acts as a low-pass filter
Cutof depends on the BRDF lobe
Created with Snap Ω x Ω u
B = [0 , 0 ; 0 , b]
Cov = inverse(inverse(Cov) + B)
BRDF is not All!
Created with Snap
image/svg+xml
blur / bias
variance
adaptive radius
Created with Snap
Refraction Operator
Snell laws scale the angular component
Critical angle as a windowing (increase freq. near TIR)
Rough refraction as low pass filter on top
Created with Snap Ω x Ω u
Tf = [1 , 0 ; 0 , e*i.z/t.z]
Cov = Tf' * Cov * Tf
Adding Defocus!
Created with Snap
image/svg+xml
Soler et al. 2009
Lens Operator
Created with Snap
image/svg+xml
focal plane
lens
sensor
A compound of already seen operators!
Curvature and transmission in the lens
Travel to the sensor
Lens Operator
For thin lenses, it simplifies to
Curvature plus Travel operators
Created with Snap Ω x Ω u
C = [1 , f; 0 , 1 ]
Tr = [1 , 0 ; d, 1 ]
L = C * Tr
Cov = L' * Cov * L
Adding Motion-Blur
Created with Snap
image/svg+xml
Adding Another Dimension for Motion-Blur
Cov = {sxx, sxu, sxt;
sxu, suu, sut;
sxt, sut, stt};
Easy formulation: coordinate change.
Created with Snap
Created with Snap
Motion Operator
Motion is a shear in space/angle/time
Our local Fourier Transform window follows the motion
Need to apply the operator twice (before and after interaction)
Created with Snap Ω x Ω t
M = [1 , 0 , vx; 0 , 1 , 0 ; 0 , 0 , 1 ]
O = [o, 0 , 0 ; 0 , 0 , 0 ; 0 , 0 , 0 ]
Cov = M * (M' * Cov * M + O) * M'
Adding Volumes
Created with Snap
image/svg+xml
Belcour et al. 2014
Participating Media Operators
Using a different rendering equation :
Radiative Transfert Equation [Ishimaru 1978 ]
Still defined on the radiance L(\mathbf{x}, \omega)
Created with Snap
image/svg+xml
absorption
scattering
Created with Snap
Absorption Operator
Same operator as occlusion
However not an infinite bandwidth
Scattering Operator
Same operator as BRDF
Analytical forms for the Henyey-Greenstein phase function
Need to be aligned with the outgoing ray
Add a scale in the spatial domain
Same as projection with no curvature
Summary: Frequency Operators
Validation
Summary: A Unified Theory
Created with Snap
image/svg+xml
volumes
shadow
material
motion
lens
[Durand et al. 2005]
[Soler et al. 2009]
[Egan et al. 2009]
[Egan et al. 2011]
[Belcour et al. 2013]
[Belcour et al. 2014]
[Munkberg et al. 2014]
[Hasselgren et al. 2015]
[Vaidyanathan et al. 2015]
[Mehta et al. 2012]
[Yan et al. 2015]
[Mehta et al. 2014]
Part II: Frequency Operators
< previous part