Siggraph Course 2017 Path Tracing in Production Part 1 Manuka: Weta Digital's Spectral Renderer

Similar documents
Introduction to color science

Why does a visual system need color? Color. Why does a visual system need color? (an incomplete list ) Lecture outline. Reading: Optional reading:

Color. Reading: Optional reading: Chapter 6, Forsyth & Ponce. Chapter 4 of Wandell, Foundations of Vision, Sinauer, 1995 has a good treatment of this.

CSE 167: Introduction to Computer Graphics Lecture #6: Colors. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013

Lecture 1 Image Formation.

Color. Computational Photography MIT Feb. 14, 2006 Bill Freeman and Fredo Durand

CSE 167: Lecture #7: Color and Shading. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011

Colour Reading: Chapter 6. Black body radiators

MODELING LED LIGHTING COLOR EFFECTS IN MODERN OPTICAL ANALYSIS SOFTWARE LED Professional Magazine Webinar 10/27/2015

Color Appearance in Image Displays. O Canada!

(0, 1, 1) (0, 1, 1) (0, 1, 0) What is light? What is color? Terminology

Color Vision. Spectral Distributions Various Light Sources

The Elements of Colour

Reading. 2. Color. Emission spectra. The radiant energy spectrum. Watt, Chapter 15.

Illumination and Shading

An Introduction to Calibration and Device Profiling. This article is supported by...

2003 Steve Marschner 7 Light detection discrete approx. Cone Responses S,M,L cones have broadband spectral sensitivity This sum is very clearly a dot

To Do. Real-Time High Quality Rendering. Motivation for Lecture. Monte Carlo Path Tracing. Monte Carlo Path Tracing. Monte Carlo Path Tracing

Discussion. Smoothness of Indirect Lighting. History and Outline. Irradiance Calculation. Irradiance Caching. Advanced Computer Graphics (Spring 2013)

Announcements. Lighting. Camera s sensor. HW1 has been posted See links on web page for readings on color. Intro Computer Vision.

Physics-based Vision: an Introduction

782 Schedule & Notes

ELEC Dr Reji Mathew Electrical Engineering UNSW

Computer Graphics. Bing-Yu Chen National Taiwan University The University of Tokyo

Motivation: Monte Carlo Path Tracing. Sampling and Reconstruction of Visual Appearance. Monte Carlo Path Tracing. Monte Carlo Path Tracing

Announcements. Camera Calibration. Thin Lens: Image of Point. Limits for pinhole cameras. f O Z

CS635 Spring Department of Computer Science Purdue University

this is processed giving us: perceived color that we actually experience and base judgments upon.

CS6670: Computer Vision

Scientific imaging of Cultural Heritage: Minimizing Visual Editing and Relighting

CS5670: Computer Vision

Visualisatie BMT. Rendering. Arjan Kok

INFOGR Computer Graphics. J. Bikker - April-July Lecture 10: Ground Truth. Welcome!

Spectral Adaptation. Chromatic Adaptation

Rendering Algorithms: Real-time indirect illumination. Spring 2010 Matthias Zwicker

Image Formation. Camera trial #1. Pinhole camera. What is an Image? Light and the EM spectrum The H.V.S. and Color Perception

Appearance Editing: Compensation Compliant Alterations to Physical Objects

6. Illumination, Lighting

Final Project: Real-Time Global Illumination with Radiance Regression Functions

Estimating basis functions for spectral sensitivity of digital cameras

CS6670: Computer Vision

GAMES Webinar: Rendering Tutorial 2. Monte Carlo Methods. Shuang Zhao

CSE 167: Lecture #6: Color. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011

Spectral Estimation and Reconstruction.

Color to Binary Vision. The assignment Irfanview: A good utility Two parts: More challenging (Extra Credit) Lighting.

Digital Image Processing COSC 6380/4393. Lecture 19 Mar 26 th, 2019 Pranav Mantini

GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON

Estimating the wavelength composition of scene illumination from image data is an

Computer Vision. The image formation process

Virtual Spherical Lights for Many-Light Rendering of Glossy Scenes

INTRODUCTION. Slides modified from Angel book 6e

Color and Shading. Color. Shapiro and Stockman, Chapter 6. Color and Machine Vision. Color and Perception

Colour appearance modelling between physical samples and their representation on large liquid crystal display

critical theory Computer Science

- Volume Rendering -

- Volume Rendering -

CS452/552; EE465/505. Color Display Issues

Characterizing and Controlling the. Spectral Output of an HDR Display

Application of CIE with Associated CRI-based Colour Rendition Properties

Schedule. MIT Monte-Carlo Ray Tracing. Radiosity. Review of last week? Limitations of radiosity. Radiosity

Monte Carlo Ray Tracing. Computer Graphics CMU /15-662

Today. Anti-aliasing Surface Parametrization Soft Shadows Global Illumination. Exercise 2. Path Tracing Radiosity

HiTi. Color Management Utility Instructions

HIGHLY PARALLEL COMPUTING IN PHYSICS-BASED RENDERING OpenCL Raytracing Based. Thibaut PRADOS OPTIS Real-Time & Virtual Reality Manager

CS681 Computational Colorimetry

The Display pipeline. The fast forward version. The Display Pipeline The order may vary somewhat. The Graphics Pipeline. To draw images.

Game Programming. Bing-Yu Chen National Taiwan University

Efficient illuminant correction in the Local, Linear, Learned (L 3 ) method

Abridged Spectral Fluorescence Imaging An innovative Graduate Student Research Report

Rendering: Reality. Eye acts as pinhole camera. Photons from light hit objects

Hero Wavelength Spectral Sampling

CS770/870 Spring 2017 Color and Shading

Fluorescent Excitation from White LEDs

CSE 167: Introduction to Computer Graphics Lecture #6: Lights. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016

Chapter 4 Color in Image and Video

Lighting. Camera s sensor. Lambertian Surface BRDF

MIT Monte-Carlo Ray Tracing. MIT EECS 6.837, Cutler and Durand 1

The exam begins at 2:40pm and ends at 4:00pm. You must turn your exam in when time is announced or risk not having it accepted.

Digital Image Processing. Introduction

High Dynamic Range Images

CMSC427 Shading Intro. Credit: slides from Dr. Zwicker

Motivation. Monte Carlo Path Tracing. Monte Carlo Path Tracing. Monte Carlo Path Tracing. Monte Carlo Path Tracing

Corona Sky Corona Sun Corona Light Create Camera About

rendering equation computer graphics rendering equation 2009 fabio pellacini 1

Other approaches to obtaining 3D structure

Global Illumination. Frank Dellaert Some slides by Jim Rehg, Philip Dutre

A Survey of Modelling and Rendering of the Earth s Atmosphere

MITOCW MIT6_172_F10_lec18_300k-mp4

Topics: Chromaticity, white point, and quality metrics

Reading. 4. Color. Outline. The radiant energy spectrum. Suggested: w Watt (2 nd ed.), Chapter 14. Further reading:

Irradiance Gradients. Media & Occlusions

OpenGL Lighting Computer Graphics Spring Frank Palermo

CS 563 Advanced Topics in Computer Graphics Irradiance Caching and Particle Tracing. by Stephen Kazmierczak

Announcements. Written Assignment 2 out (due March 8) Computer Graphics

Computer Graphics. Bing-Yu Chen National Taiwan University

Using Trichromatic and Multi-channel Imaging

1. Final Projects 2. Radiometry 3. Color. Outline

Survey in Computer Graphics Computer Graphics and Visualization

Estimation of Reflection Properties of Silk Textile with Multi-band Camera

Light. Properties of light. What is light? Today What is light? How do we measure it? How does light propagate? How does light interact with matter?

Transcription:

Siggraph Course 2017 Path Tracing in Production Part 1 Manuka: Weta Digital's Spectral Renderer Johannes Hanika, Weta Digital 1

Motivation Weta Digital is a VFX house we care about matching plate a lot natural and supernatural phenomena both usually means physically-based light transport we use our in-house renderer: 2

Outline of this talk colour reproduction spectral rendering/sampling colour management/textures advantages of spectral sampling 3

What does the eye see? standardised process, we are going to work under the assumption this is true incoming light is projected to the 1931 2-degree XYZ colour matching functions * = X Y Z 4

What does a camera see? analogous to the eye: project to colour filter array spectra CFA varies a lot with the device * = X Y Z * = R G B 5

What does a camera see? analogous to the eye: project to colour filter array spectra CFA varies a lot with the device * = X Y Z * = R G B 6

What does a camera see? analogous to the eye: project to colour filter array spectra CFA varies a lot with the device * = X Y Z * = R G B 7

What does a camera see? analogous to the eye: project to colour filter array spectra CFA varies a lot with the device * = X Y Z * = R G B 8

What does a camera see? analogous to the eye: project to colour filter array spectra camera RGB to XYZ can in general not be described by a 3 3 matrix! * = X Y Z * = R G B 9

What does a camera see? So how do we determine XYZ coordinates from cam RGB then? can be done in various ways (fitting/lut...) here, matrix comes from linear least squares fit to calibration chart we use the IT8 target R GB X YZ * = 10

Metamerism classic example of illumination metamerism: go into a shop, buy a shirt to match your pants (incandescent lighting) outside in the sun, colours don't match any more! observer metamerism: different for different camera responses 11

Metameric spectra for the XYZ CMF observer photographed by different cameras spectrum XYZ c00 c01 c02 c03 c04 c05 c06 c07 c08 c09 c10 c11 12

Metameric spectra for the XYZ CMF observer photographed by different cameras spectrum XYZ c00 c01 c02 c03 c04 c05 c06 c07 c08 c09 c10 c11 13

Metameric spectra for the XYZ CMF observer photographed by different cameras spectrum XYZ c00 c01 c02 c03 c04 c05 c06 c07 c08 c09 c10 c11 14

Colour reproduction using a renderer integrate over the pixel I p (λ) = h p (X)f (X)dX and project into camera RGB by multiplying the colour matching fuction r (λ) for a simple single-bounce path: I r = (λ) (λ)dλ I r Λ r I p = r (λ) h (X) dxdλ Λ p L e (λ) G f r (λ) G W(λ) measurement contribution 15

Indirect lighting in a renderer for a simple single-bounce path = (X) (λ) (λ) G (λ) G W(λ) dλdx I r h p Λ r L e f r we can swap the integrals first convert to RGB and then accumulate in an RGB frame buffer but RGB rendering: (λ) (λ) (λ)dλ Λ r L e f r Λ r (λ) L e (λ)dλ Λ r (λ) f r (λ)dλ reflected light in RGB light in RGB Bsdf in RGB Ouch! 16

Computing indirect light in RGB/tristimulus completely wrong, but how bad is it? simple experiment: simulate diffuse bounces multiply albedo by itself observe colour change with number of bounces depends on working space (Adobe RGB, rec709, ACES,..) spectral as reference 17

Indirect lighting, reflectance in rec709 (1.00, 0.95, 0.90) #bounces 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 XYZ ACES Adobe RGB rec709 spectral illuminant E white (whitepoint does not match rec709) 18

Indirect lighting, reflectance in rec709 (1.00, 0.95, 0.90) #bounces 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 XYZ ACEScg Adobe RGB rec709 spectral illuminant E white (whitepoint does not match rec709) 19

Indirect lighting, reflectance in rec709 (0.97, 0.01, 0.00) #bounces 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 XYZ ACEScg Adobe RGB rec709 spectral most saturated red (gamut mapped to valid reflectance) 20

Valid reflectances limit on reflectances is energy conservation may not exceed 1.0 for any wavelength trade off between brightness and saturation 1 1 0 400 0 400 21

Gamut mapping need some means to find the closest valid reflectance.1.2.3.4.5.9 1.0.95.6.8.7 X+Y+Z x for instance smallest perceptual error linear transform simple clamping ΔE 22

Gamut mapping need some means to find the closest valid reflectance.1.2.3.4.5.9 1.0.95.6.8.7 X+Y+Z x for instance smallest perceptual error linear transform simple clamping ΔE 23

Indirect lighting, reflectance in rec709 (0.96, 0.00, 0.72) #bounces 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 XYZ ACEScg Adobe RGB rec709 spectral magenta (not saturated) 24

RGB transport? why would we do it? it's wrong! let's go spectral! does it cost us anything? 25

Spectral rendering many different approaches in literature for simple methods, basically two choices: evaluate path for fixed set of wavelengths (60 bins at 5nm spacing) Monte Carlo (evaluate for one single wavelength) 26

Spectral rendering: Monte Carlo compute everything for one single random wavelength Monte Carlo means colour noise 27

Spectral rendering: Monte Carlo hero wavelength sampling: hero determines importance sampling trace a stratified set of wavelengths along with the path combine using MIS 28

Spectral rendering: Hero wavelength sampling compute illuminant E white with random hero wavelength varying the hero wavelength: what is the 1d locus of all possible colour answers? 1 wavelength 2 wavelengths 29

Spectral rendering: Hero wavelength sampling compute illuminant E white with random hero wavelength varying the hero wavelength: what is the 1d locus of all possible colour answers? 3 wavelengths 4 wavelengths (SSE) 30

Spectral rendering: Hero wavelength sampling compute illuminant E white with random hero wavelength varying the hero wavelength: what is the 1d locus of all possible colour answers? 4 wavelengths (SSE) 8 wavelengths (AVX) 31

Hero wavelength image comparison 4spp skin material with single wavelength 32

Hero wavelength image comparison 4spp skin material with 2 wavelengths 33

Hero wavelength image comparison 4spp skin material with 3 wavelengths 34

Hero wavelength image comparison 4spp skin material with 4 wavelengths 35

Hero wavelength image comparison 4spp skin material with 5 wavelengths 36

Hero wavelength image comparison 4spp skin material with 6 wavelengths 37

Hero wavelength image comparison 4spp skin material with 7 wavelengths 38

Hero wavelength image comparison 4spp skin material with 8 wavelengths 39

Hero wavelength image comparison 4spp readjust your eyes! single wavelength again: 40

Hero wavelength image comparison 64spp skin material with 1 wavelength 41

Hero wavelength image comparison 64spp skin material with 4 wavelengths (SSE) 42

Hero wavelength image comparison 64spp skin material with 8 wavelengths (AVX) 43

Hero wavelength vs. denoising in post can we apply off-the shelf image denoising to chromaticity channels only? 1 wavelength 8 wavelengths 44

Hero wavelength vs. denoising in post works increasingly better at higher sample counts (fast preview?) 1 wavelength + Lab denoising 8 wavelengths 45

Colour pipeline well defined input colour space for rgb textures upsampling rgb to spectra (lights and Bsdf parameters) map to gamut of valid reflectances light transport in spectral domain map to output gamut for final frames (render is all colours!) 0.9 0.8 520 540 0.7 0.6 500 0.5 y 0.4 0.3 560 580 600 620 0.2 0.1 480 0.0 460 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 x 46

Upsampling RGB to spectrum there are various approaches, common constraints: "same colour": input XYZ to match output spectrum lit by illuminant E seen by XYZ CMF smooth spectra non-negative spectra reflectances bounded by one not a constraint for emission spectra 47

Gamut of reflectances, revisited limits the look of things overly saturated colours require fluorescence how do you do bidirectional path construction? may need to do clever colour grading instead for us more a feature: avoids radioactive glow 1 1 0 400 0 400 48

Spectral importance sampling chromatic extinction (skin) actually see Disney paper this a ernoon: Spectral and Decomposition Tracking for Rendering Heterogeneous Volumes wavelength dependent Bsdf (interference, iridescence, Rayleigh scattering) okay, dispersion 49

Chromatic extinction useful for skin: model red blur in SSS while keeping surface colour neutral 50

Chromatic extinction useful for skin: model red blur in SSS while keeping surface colour neutral 51

Chromatic extinction transmittance τ(λ, t) depends on wavelength through μ t (λ) 700nm 550nm 400nm distance Monte Carlo sample weight: f (X) X = = p(x) τ(λ, t) μ t (λ) τ(λ, t) unbounded if sampling the path with a different λ! solution: split and sample per wavelength o en implemented in RGB renderers, too (for 3 "wavelengths") with MIS combination exactly what hero wavelength sampling does! 0! 52

Photometric units design tools for lighters: keep perceived brightness but change colour predictable results (much like in the real world) got very good feedback on this from War for the planet of the apes 53

Conclusion: spectral rendering is here to stay precise colour reproduction match camera and lights match indirect by correct transport spectral rendering Monte Carlo simulation of control colour noise using hero wavelengths colour management input, output, and reflectance gamut good importance sampling especially chromatic media (skin!) λ 54

Thank you for listening! thanks to the wikihuman project for the digital emily asset used in the skin renders 55

backup slides 56

How do we reproduce colours for the eye? multiply monitor response curves by RGB values light will be projected onto XYZ CMF X Y Z * *M= R G B * * 57

How do we reproduce colours for the eye? full pipeline is linear! change R on RGB input: r (λ) and CMF x (λ) x r x (λ) r (λ) dλ multiply by spectrum X = (λ) (λ) R dλ = R XYZ to RGB through linear matrix const! * X Y Z X Y Z *M= R G B * * = * 58

Colours within rec709 round tripping: scene (spectral) camera (RGB) matrix profile output colour (XYZ) as seen by Canon 5DmII, Nikon D70, Kodak DCS 420 xy chromaticity diagram xy chromaticity diagram xy chromaticity diagram 1 input camera 1 input camera 1 input camera 0.8 0.8 0.8 0.6 0.6 0.6 0.4 0.4 0.4 0.2 0.2 0.2 0 0 0.2 0.4 0.6 0.8 1 0 0 0.2 0.4 0.6 0.8 1 0 0 0.2 0.4 0.6 0.8 1 59

Colours within AdobeRGB round tripping: scene (spectral) camera (RGB) matrix profile output colour (XYZ) as seen by Canon 5DmII, Nikon D70, Kodak DCS 420 xy chromaticity diagram xy chromaticity diagram xy chromaticity diagram 1 input camera 1 input camera 1 input camera 0.8 0.8 0.8 0.6 0.6 0.6 0.4 0.4 0.4 0.2 0.2 0.2 0 0 0.2 0.4 0.6 0.8 1 0 0 0.2 0.4 0.6 0.8 1 0 0 0.2 0.4 0.6 0.8 1 60

Colours within the spectral locus round tripping: scene (spectral) camera (RGB) matrix profile output colour (XYZ) note that rendering using XYZ CMF would yield ground truth! xy chromaticity diagram xy chromaticity diagram xy chromaticity diagram 1 input camera 1 input camera 1 input camera 0.8 0.8 0.8 0.6 0.6 0.6 0.4 0.4 0.4 0.2 0.2 0.2 0 0 0.2 0.4 0.6 0.8 1 0 0 0.2 0.4 0.6 0.8 1 0 0 0.2 0.4 0.6 0.8 1 61

Upsampling RGB to spectrum [Smits 1999] for reflectances optimise for your input colour space use finer resolution than original paper [Meng et al. 2015] for reflectances and emission works for all of XYZ, independent of input colour space do gamut mapping as separate step (for reflectances) Manuka the others optimise for illuminant E and XYZ colour matching functions optimise specificly for current camera responsivity constraint on emission spectra a D65 spectrum maps to itself a er round trip 62

Indirect lighting, reflectance in rec709 (1.00, 0.95, 0.90) #bounces 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 XYZ ACES ACEScg Adobe RGB rec709 spectral illuminant E white (whitepoint does not match rec709) 63

Indirect lighting, reflectance in rec709 (0.97, 0.01, 0.00) #bounces 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 XYZ ACES ACEScg Adobe RGB rec709 spectral most saturated red (gamut mapped to valid reflectance) 64

Indirect lighting, reflectance in rec709 (0.00, 0.86, 0.00) #bounces 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 XYZ ACES ACEScg Adobe RGB rec709 spectral saturated green (gamut mapped to valid reflectance) 65

Indirect lighting, reflectance in rec709 (0.00, 0.00, 0.68) #bounces 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 XYZ ACES ACEScg Adobe RGB rec709 spectral most saturated blue (gamut mapped to valid reflectance) 66

Indirect lighting, reflectance in rec709 (0.11, 0.09, 0.85) #bounces 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 XYZ ACES ACEScg Adobe RGB rec709 spectral so er blue to reduce peaks 67

Indirect lighting, reflectance in rec709 (0.00, 0.81, 0.78) #bounces 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 XYZ ACES ACEScg Adobe RGB rec709 spectral cyan 68

Indirect lighting, reflectance in rec709 (1.00, 0.00, 0.74) #bounces 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 XYZ ACES ACEScg Adobe RGB rec709 spectral magenta 69

Indirect lighting, reflectance in rec709 (0.96, 0.00, 0.72) #bounces 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 XYZ ACES ACEScg Adobe RGB rec709 spectral magenta (not saturated) 70

Indirect lighting, reflectance in rec709 (1.00, 0.89, 0.00) #bounces 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 XYZ ACES ACEScg Adobe RGB rec709 spectral yellow 71

Indirect lighting, reflectance in rec709 (0.93, 0.06, 0.00) #bounces 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 XYZ ACES ACEScg Adobe RGB rec709 spectral measured spectrum 72