- Introduction
- Frequency Operators
- Travel & Occlusion
- Reflection & Refraction
- Scattering & Absorption

- Applications
- Adaptive sampling & denoising
- Upsampling
- Density estimation
- Antialiasing

- Conclusion

$$
\mathcal{F}[L](\Omega) = \int_{\mathbf{z} \in \mathbb{R}^N} L(\mathbf{z}) e^{i 2 \pi \, \mathbf{\Omega}^T \delta\mathbf{z}}, \; \mbox{where} \; \mathbf{z} = [\mathbf{x}, \mathbf{\omega}]
$$

- This cannot in practice: global definition
- Need to treat the whole scene at once
- Actually not well-defined (discontinuous domain)

- local FT requires a window: $ W_l $:

$$ \mathcal{F}_l[L](\Omega) = \int_{\mathbf{z} \in \mathbb{R}^N} L(\mathbf{z}) \ \color{red}{ W_l(\mathbf{z}) }\ e^{i 2 \pi \, \mathbf{\Omega}^T \mathbf{z}}, \; \mbox{where} \; \mathbf{z} = [\mathbf{x}, \mathbf{\omega}] $$

- Interesting properties:
- Makes the Fourier Transform well defined
- The window increase the min frequency

- 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})$$

- We aren't looking at point-wise radiance anymore
- Local radiance around a main ray
- Requires a parametrization

- 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

- Implementation example
- Manipulation of the covariance matrix
- Using Matlab's' syntax

` ````
Cov = {sxx, sxu;
sxu, suu};
```

- Travel is a shear in local space

` ````
% Travel of 'd' meters
Tr = [1, d; 0, 1]
Cov = Tr' * Cov * Tr
```

- Add frequencies in the spatial domain
- Has infinite bandwidth!

` ````
% Visibility operation
Occ = [o, 0; 0, 0]
Cov = Cov + Occ
```

- 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 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

- Curvature shears angular frequencies

` ````
% Projection to a curved object of radius 'k'
Cv = [1, 0; k, 1]
Cov = Cv' * Cov * Cv
```

BRDF roughness: 0 0.05

- The BRDF cuts the angular frequency
- Acts as a low-pass filter
- Cutof depends on the BRDF lobe

` ````
% BRDF with cut at 'b'
B = [0, 0; 0, b]
Cov = inverse(inverse(Cov) + B)
```

Refractive index: 1 3

- Snell laws scale the angular component
- Critical angle as a windowing (increase freq. near TIR)
- Rough refraction as low pass filter on top

` ````
% Snell interface with e=n1/n2
Tf = [1, 0; 0, e*i.z/t.z]
Cov = Tf' * Cov * Tf
```

- A compound of already seen operators!
- Curvature and transmission in the lens
- Travel to the sensor

- For thin lenses, it simplifies to
- Curvature plus Travel operators

` ````
% Lens with focal length f and distance to sensor d
C = [1, f; 0, 1]
Tr = [1, 0; d, 1]
L = C * Tr
Cov = L' * Cov * L
```

- A new dimension: time.

` ````
Cov = {sxx, sxu, sxt;
sxu, suu, sut;
sxt, sut, stt};
```

- Easy formulation: coordinate change.

Egan et al. 2009 Belcour et al. 2013

- 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)

` ````
% Occlusion with moving object of speed 'vx'
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'
```

- Using a different
*rendering equation*:- Radiative Transfert Equation [Ishimaru 1978]
- Still defined on the radiance $ L(\mathbf{x}, \omega) $

- Same operator as occlusion
- However not an infinite bandwidth

- 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

> next part