Скачать презентацию Advanced Lighting R D at Ready At Dawn Studios Скачать презентацию Advanced Lighting R D at Ready At Dawn Studios

RAD_SIGGRAPH_PBS_2015.pptx

  • Количество слайдов: 79

Advanced Lighting R&D at Ready At Dawn Studios David Neubelt – Ready At Dawn Advanced Lighting R&D at Ready At Dawn Studios David Neubelt – Ready At Dawn Studios Matt Pettineo – Ready At Dawn Studios Physically Based Shading in Theory and Practice 2015

Trailer Viewable online at: https: //youtu. be/8 Cn. Waz. Zp. Me. Q Trailer Viewable online at: https: //youtu. be/8 Cn. Waz. Zp. Me. Q

Baked Global Illumination Baked Global Illumination

Baked Global Illumination § Goals § High quality static GI § Baked environments § Baked Global Illumination § Goals § High quality static GI § Baked environments § Baked character lighting § Diffuse and specular

Tried Many Solutions Baked AO PRT SG (5, 6, 9, 12) SH (4, 9) Tried Many Solutions Baked AO PRT SG (5, 6, 9, 12) SH (4, 9) Directional AO Directional Diffuse RGB Diffuse Perspective Correct Cubemaps H-Basis 4/6 H-basis AO

Spherical Harmonics Diffuse § Good for: low frequency signals § Bad for: high intensity, Spherical Harmonics Diffuse § Good for: low frequency signals § Bad for: high intensity, directional lighting Dynamic light Projected onto SH 9

Spherical Harmonics Ringing Dynamic Light SH 9 Spherical Harmonics Ringing Dynamic Light SH 9

Spherical Harmonics Specular § Lots of coefficients for high frequency data § Expensive to Spherical Harmonics Specular § Lots of coefficients for high frequency data § Expensive to evaluate § Texture lookup § SH Rotation § Evaluation

Spherical Harmonics Specular § SH 9 looks matte: SH 9 Path Tracer Spherical Harmonics Specular § SH 9 looks matte: SH 9 Path Tracer

Cubemap Specular § Non-localized sampling artifacts Cubemap Path Tracer Cubemap Specular § Non-localized sampling artifacts Cubemap Path Tracer

Cubemap Specular § Localization and occlusion problems Cubemap Path Tracer Cubemap Specular § Localization and occlusion problems Cubemap Path Tracer

Spherical Gaussian Basis Cubemap SH 9 SG 9 Path Traced Spherical Gaussian Basis Cubemap SH 9 SG 9 Path Traced

Spherical Gaussian GI Spherical Gaussian GI

Cubemap and SH 9 Cubemap and SH 9

Spherical Gaussians Added specular Specular shadows Spherical Gaussians Added specular Specular shadows

Baking Specular SG Bake Disabled Baking Specular SG Bake Disabled

Baking Specular • Multiple light sources captured in light map properly • No aliasing Baking Specular • Multiple light sources captured in light map properly • No aliasing from cube maps (added bonus) SG Bake Enabled

Baking Specular SG Bake Disabled Baking Specular SG Bake Disabled

Baking Specular Stretched Highlights • Cubemaps only have Phong isotropic highlights • SGs can Baking Specular Stretched Highlights • Cubemaps only have Phong isotropic highlights • SGs can have long stretched highlights SG Bake Enabled

Baking Specular SG Bake Disabled Baking Specular SG Bake Disabled

Baking Specular SG Bake Enabled Baking Specular SG Bake Enabled

Basic Mathematical Properties Basic Mathematical Properties

Spherical Gaussians Width Amplitude Mean Spherical Gaussians Width Amplitude Mean

Spherical Gaussians § Mean controls the direction it points § Width controls the falloff Spherical Gaussians § Mean controls the direction it points § Width controls the falloff § Amplitude controls the height or intensity

Spherical Gaussians § Mean controls the direction it points § Width controls the falloff Spherical Gaussians § Mean controls the direction it points § Width controls the falloff § Amplitude controls the height or intensity

Spherical Gaussians § Width controls the falloff § Mean controls the direction it points Spherical Gaussians § Width controls the falloff § Mean controls the direction it points § Width controls the falloff § Amplitude controls the height or intensity W = 1 1/4 1/16 1/64

Spherical Gaussians § Amplitude controls the height or intensity § Mean controls the direction Spherical Gaussians § Amplitude controls the height or intensity § Mean controls the direction it points § Width controls the falloff A = 0. 0 0. 3 0. 5 1. 0

Spherical Gaussians § SG (operator) SG = SG (closed operators) § Rotation is simple Spherical Gaussians § SG (operator) SG = SG (closed operators) § Rotation is simple 3 d vector rotation § Closed form integrals § Convolutions, inner products § Closed form products § Double, triple products, etc. . [ (operator) ] =

Spherical Gaussians § Can be added together to represent complicated signals + + = Spherical Gaussians § Can be added together to represent complicated signals + + =

Spherical Gaussians § Can represent area lights Spherical Gaussians § Can represent area lights

Spherical Gaussians § … and different BRDFs Spherical Gaussians § … and different BRDFs

SG Lightmaps SG Lightmaps

Light Map Data § 5, 6, 9, or 12 RGB non-negative HDR coefficients § Light Map Data § 5, 6, 9, or 12 RGB non-negative HDR coefficients § Number of coefficients is arbitrary § Could use 4 to replace SH 4/h-basis 4 § Only contain color data § BC 6 compressed lightmaps § Mean directions and widths are hardcoded constants in shader

SG Baked Lighting § Represent radiance as sum of SGs baked to each light SG Baked Lighting § Represent radiance as sum of SGs baked to each light map texel

Fixed Directions § Fixed set of evenly spaced directions on the sphere § 5, Fixed Directions § Fixed set of evenly spaced directions on the sphere § 5, 6, 9, or 12 § Use golden ratio spiral

Fixed Widths § Width § Too small == gaps § Too large == over Fixed Widths § Width § Too small == gaps § Too large == over blur § Just right Gaps Over-blurred Just right

Why Fixed Basis? § Variable scalar count § § 27 scalars for color (9 Why Fixed Basis? § Variable scalar count § § 27 scalars for color (9 * 3) 9 widths 18 scalars for direction (theta/phi) == 54 § Fixed scalar count § == 27 § Fixed Benefits § 2 x more directions for same amount of data § More optimization opportunities § No interpolation issues between adjacent texels

Lighting with SGs § Basic Idea § Represent radiance as a sum of SGs Lighting with SGs § Basic Idea § Represent radiance as a sum of SGs § Represent BRDF as SG Integrate [ Radiance * * BRDF ] = Lighting

SG Baked Lighting § Actual implementation is more complicated § Fresnel § Shadowing § SG Baked Lighting § Actual implementation is more complicated § Fresnel § Shadowing § Masking § Warping the NDF § NDF SG is parameterized by half angle § Radiance SG is parameterized by light direction § Need them in same space for efficient SG multiplication

SG Baked Lighting § NDF approximation § Beckmann = § GGX = 1 SG SG Baked Lighting § NDF approximation § Beckmann = § GGX = 1 SG 2 SGs 1 SG 3 SGs GGX Reference

Lighting with SGs • NDF * Radiance • NDF • Radiance NDF in half Lighting with SGs • NDF * Radiance • NDF • Radiance NDF in half angle space = = (can’t: wrong space!) Half-Angle Space ASG for stretch Tangent Space Rotate to light direction Warp to match ref NDF

Lighting with SGs SG Warp ASG Warp Path Traced Lighting with SGs SG Warp ASG Warp Path Traced

Lighting with SGs Lighting Equation * * Masking Fresnel Constant Func Smooth Func * Lighting with SGs Lighting Equation * * Masking Fresnel Constant Func Smooth Func * Shadowing Smooth Func dω * Warped NDF Radiance ASG SG

Lighting with SGs Lighting Equation * Masking Fresnel Constant Func Smooth Func * Shadowing Lighting with SGs Lighting Equation * Masking Fresnel Constant Func Smooth Func * Shadowing Smooth Func No analytical integral dω * Warped NDF Radiance ASG SG Analytical integral

Lighting with SGs Lighting Equation * * * dω Masking Fresnel Shadowing Warped NDF Lighting with SGs Lighting Equation * * * dω Masking Fresnel Shadowing Warped NDF Radiance Constant Func Smooth Func ASG SG Evaluate product Analytical integral

Lighting with SGs F * S * M F * S * * dω Lighting with SGs F * S * M F * S * * dω =

Mirror-Like Materials § Basic idea § Rough materials § Shiny materials § In between Mirror-Like Materials § Basic idea § Rough materials § Shiny materials § In between == == ~= SG Cubemap lerp(SG, Cubemap)

Spherical Gaussians / Cube Map Blending Visualization Spherical Gaussians / Cube Map Blending Visualization

100% SG Lightmap 100% Cubemap Spherical Gaussians / Cube Map Blending Visualization 100% SG Lightmap 100% Cubemap Spherical Gaussians / Cube Map Blending Visualization

Post-Mortem and Future R&D Post-Mortem and Future R&D

Looking Back § The Order: 1886 Shipped in February 2015 § Some tech decisions Looking Back § The Order: 1886 Shipped in February 2015 § Some tech decisions worked out! § Material pipeline § SG baking § What can we improve?

R&D Principles § Driven by real-world needs § Not just what we think is R&D Principles § Driven by real-world needs § Not just what we think is cool! § Should make lives easier, not harder § Physically based by default § Default to plausible, real-world values

Basic Scene Pipeline Light Sources Physically Based Output Materials Exposure Not Physically Based Basic Scene Pipeline Light Sources Physically Based Output Materials Exposure Not Physically Based

Balancing Lighting § No physical basis for: § Sky § Sun § Local lights Balancing Lighting § No physical basis for: § Sky § Sun § Local lights § Exposure § How to balance?

Balancing Lighting § Made ‘atriums’ for various lighting conditions § Standardized in-game exposure values Balancing Lighting § Made ‘atriums’ for various lighting conditions § Standardized in-game exposure values § Visually balanced light sources § AKA: tweak until it looks good § See our production session

Balancing Lighting § Good end results, but not very efficient § Lots of time Balancing Lighting § Good end results, but not very efficient § Lots of time tweaking, chasing down problems § Can we make this easier? § We think so

Skies in The Order § First attempt: Vue by e-On Software § Full procedural Skies in The Order § First attempt: Vue by e-On Software § Full procedural skydome § Used by VFX industry § Artists had trouble using it § Steep learning curve § Slow renders § Typically used by specialists § Need to revisit in the future

Skies in The Order § Shipping solution: purchased HDR sky images § Extra details Skies in The Order § Shipping solution: purchased HDR sky images § Extra details added in Photoshop § Arbitrary intensities! § Very inconsistent across images § Causes issues with HDRI § Had to visually balance by hand § Endless tweaking

Procedural Sky Models § CIE sky models [CIE 04] § Only gives relative luminance Procedural Sky Models § CIE sky models [CIE 04] § Only gives relative luminance distribution § [Preetham 99] § Analytical luminance + chromaticity § Includes direct solar radiance § [Hosek-Wilkie 12] § Improved analytical model § Based on spectral path-traced data

Hosek-Wilkie Sky Model § Good for prototyping and validation § Easy to integrate (sample Hosek-Wilkie Sky Model § Good for prototyping and validation § Easy to integrate (sample code) § Physically correct intensity § Simple parameters § Useful for authoring? § Procedural clouds? § Paint details on top? § Needs more investigation

Sunlight in The Order § Runtime directional light § Arbitrary color and intensity § Sunlight in The Order § Runtime directional light § Arbitrary color and intensity § Same as skies: tweak until it looks balanced § Cascading balance problems § Is the sky wrong? § Is the sun wrong? § Are they both wrong? !?

Directional light specular highlight Sun from sky image captured in ambient cubemap “Double sun” Directional light specular highlight Sun from sky image captured in ambient cubemap “Double sun” problem

Procedural Sun § Currently trying Preetham Sun § Great for authoring! § Calculate color Procedural Sun § Currently trying Preetham Sun § Great for authoring! § Calculate color + intensity from elevation § Tweak color/size/intensity relative to physically correct defaults

Sun Elevation: 85⁰ – f/16 Sun Elevation: 85⁰ – f/16

Sun Elevation: 65⁰ – f/16 Sun Elevation: 65⁰ – f/16

Sun Elevation: 45⁰ – f/16 Sun Elevation: 45⁰ – f/16

Sun Elevation: 25⁰ – f/16 Sun Elevation: 25⁰ – f/16

Sun Elevation: 5⁰ – f/11 Sun Elevation: 5⁰ – f/11

Sun Elevation: 0. 5⁰ – f/8 Sun Elevation: 0. 5⁰ – f/8

Local Lights in The Order § Point and spot lights at runtime § Sphere, Local Lights in The Order § Point and spot lights at runtime § Sphere, disc, quad area lights for baking only § No physical units or intensities § Made a database of light fixtures § Quickly place light + fixture mesh inside of Maya

Balancing Local Lights § Artist specified intensity in atriums § Tweaked until it looked Balancing Local Lights § Artist specified intensity in atriums § Tweaked until it looked “right” § Yet another layer to the balancing problem § Impossible to validate § Problems at indoor/outdoor transitions

Local Lights: The Future § Real-world units and intensity ranges § Match sun and Local Lights: The Future § Real-world units and intensity ranges § Match sun and sky by default § Easier reference comparisons § Lots of options [Lagarde 2014] § Luminance (cd/m 2) § Luminous flux (lumens) § EV 100

Exposure: The Order § Single scalar applied before tone mapping § Artist specified in Exposure: The Order § Single scalar applied before tone mapping § Artist specified in log 2 space § Simple geometric mean auto-exposure § Exponential feedback for adaptation § Lots of manual intervention § Min/max exposure clamps § Key value adjustments § Specified per region

Auto exposure (default) Auto exposure (default)

Manual exposure (artist-specified) Manual exposure (artist-specified)

Exposure: The Future § Physically based exposure model § [Lagarde 14][Hennessey 14] § Real-world Exposure: The Future § Physically based exposure model § [Lagarde 14][Hennessey 14] § Real-world parameters § Photography guidelines § Better metering § Experiment with weighting schemes § View-dependent constraints § More R&D!

Acknowledgements § § Stephen Hill Stephen Mc. Auley Nick Blasingame Joe Schutte Acknowledgements § § Stephen Hill Stephen Mc. Auley Nick Blasingame Joe Schutte

Questions? David Neubelt dave@readyatdawn. com @daveneubelt Matt Pettineo matt@readyatdawn. com @mynameismjp http: //mynameismjp. wordpress. Questions? David Neubelt dave@readyatdawn. com @daveneubelt Matt Pettineo matt@readyatdawn. com @mynameismjp http: //mynameismjp. wordpress. com/

References [CIE 04] – Spatial Distribution of Daylight – CIE Standard General Sky [Preetham References [CIE 04] – Spatial Distribution of Daylight – CIE Standard General Sky [Preetham 99] – A Practical Analytic Model for Daylight [Hosek 12] – An Analytic Model for Full Spectral Skydome Radiance [Hosek 13] – Adding a Solar-Radiance Function to the Hosek-Wilkie Skylight Model [Lagarde 14] – Moving Frostbite to PBR [Hennessey 14] – Implementing a Physically Based Camera – Manual Exposure [Sousa 13] - Graphics Gems from Cry. Engine 3 [Wang 09] – All-Frequency Rendering of Dynamic, Spatially-Varying Reflectance [Xu 13] – Anisotropic Spherical Gaussians [Xu 14] – A Practical Algorithm for Rendering Interreflections with All-Frequency BRDFs