in Path-space

Laurent Belcour

MontrĂ©al University

MontrĂ©al University

Ling-Qi Yan

UC Berkeley

UC Berkeley

Ravi Ramamoorthi

UC San Diego

UC San Diego

Derek Nowrouzezahrai

MontrĂ©al University

MontrĂ©al University

Image from Mitsuba [Wenzel Jakob]

- Idea: limit materials frequency to reduce noise
**Adapt texture resolution**to screen resolution- Better
**cache handling**for textures

- Idea: limit materials frequency to reduce noise
**Adapt texture resolution**to screen resolution- Better
**cache handling**for textures

- Method: use the
**pixel's footprint****Geometrical method**: what is the pixel's projection?- Use the pixel/ray derivatives [Igehy 1999]

- Differentials work fine for specular interaction
- Extended to
**rough interaction**by [Suykens and Willems 2001] - But limited ...

- Extended to
- Fail short to model subtle effects
- Binary footprints:
**no pixel filter**

- Binary footprints:
**Decorrelated**light in antialiasing- Can build differentials from light [Schjøth et al. 2007]

image from [Suykens and Willems 2001]

- Bidirectional path tracing requires symmetric light transport

- Stop thinking in terms of geometry!
- Use
**frequency analysis**to define antialiasing kernels **Adapt**textures frequency to incoming light-field frequency

- Use
- Make modern path tracing (e.g., BDPT) a first class citizen
- Support
**multiple non-specular**bounce - Antialiasing kernels using
**both**eye and light paths

- Support
- Simple implementation
- Extension of ray class, similar to ray differentials

- Filtering is defined by surface area: $\color{red}{\mathcal{P}}$

- Pixel filter is a kernel applied on the surface!

- This kernel is a low-pass filter on the SV-BRDF:

Fourier domain

$$\Sigma =
\begin{pmatrix}
\sigma_{xx} & \sigma_{xy} & \sigma_{xu} & \sigma_{xv} \\
\sigma_{yx} & \sigma_{yy} & \sigma_{yu} & \sigma_{yv} \\
\sigma_{ux} & \sigma_{uy} & \sigma_{uu} & \sigma_{uv} \\
\sigma_{vx} & \sigma_{vy} & \sigma_{vu} & \sigma_{vv} \\
\end{pmatrix}
$$

$$\Sigma =
\begin{pmatrix}
\color{red}{\sigma_{xx}} & \sigma_{xy} & \sigma_{xu} & \sigma_{xv} \\
\sigma_{yx} & \color{black}{\sigma_{yy}} & \sigma_{yu} & \sigma_{yv} \\
\sigma_{ux} & \sigma_{uy} & \color{blue}{\sigma_{uu}} & \sigma_{uv} \\
\sigma_{vx} & \sigma_{vy} & \sigma_{vu} & \color{black}{\sigma_{vv}} \\
\end{pmatrix}
$$

- Use statistical analysis in Fourier space [Durand 2005]
- Second order information is relevant [Belcour 2012]
- Similar to a Gaussian approximation of the kernel

- Construction similar to Ray Differentials
- Initialize at light/eye vertex and propagate
- Account for rough interactions and volumes

- How to specify it?
- Using the pixel filter function
- Similar to Pre-Filtered IS [Colbert and Krivanek 2009]

eye kernel

material

light

light kernel

material

light

$$ \color{blue}{\Sigma_e} \; + \; \color{green}{\Sigma_l} \; = \; \Sigma $$

- We need to re-evaluate BSDFs at each connection
- To account for the mean covariance
- In practice we can re-evaluate at connection vertices only

- Mitsuba Implementation
- Added a RayCovariance class
- Convertion to RayDifferential before BSDF evaluation

- Providing a Small PT [Beason 2010] example
- Available on GitHub

Kernel after one bounce

- Unidirectional antialiasing kernels
- Using [Yan 2016] normal map model
- Focusing on indirect footprints with glossy materials

- Bidirectional antialiasing kernels
- Using [Yan 2016] normal map model
- Focusing on long light paths (caustics)

Ours (~50min)

Reference (24 days)

BDPT (equal-time)

- Bidirectional antialiasing kernels
- Highly indirect illumination
- Complex lighting (light bulbs)

Ours (~4h)

Reference (141 days)

BDPT (equal-time)

- Limitations
- Only treated spatial antialiasing
- Stationary footprint

- Future directions of work
- Incorporate geometry in antialiasing (curvature, ...)
- Antialiasing kernels for participating media
- Other uses of covariance tracing

paper | code |