SlideShare a Scribd company logo
Stochastic all the things:
Raytracing in hybrid real-time rendering
Tomasz Stachowiak
SEED – Electronic Arts
Watch the trailer here:
https://www.youtube.com/watch?v=LXo0WdlELJk
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
“PICA PICA”
▪ Exploratory mini-game & world
▪ For our self-learning AI agents to
play, not for humans ☺
▪ “Imitation Learning with Concurrent
Actions in 3D Games” [Harmer 2018]
▪ Uses SEED’s Halcyon R&D engine
▪ Goals
▪ Explore hybrid rendering with DXR
▪ Clean and consistent visuals
▪ Procedural worlds [Opara 2018]
▪ No precomputation
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Agenda
▪ Motivation
▪ Reflections
▪ Translucency and Transparency
▪ Global Illumination
▪ Shadows
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Why use raytracing?
Path tracing ~15 seconds accumulation
Path tracing (1 sample per pixel)
Real-time hybrid with raytracing
No raytracing
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Is this a fair comparison?
▪ “Classic” game solutions exist
▪ Local reflection volumes
▪ Planar reflections
▪ Lightmaps
▪ “Sky visibility” maps
▪ …
Zero artist overhead
1. Enable raytracing
2. ???
3. PROFIT!
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Hybrid Rendering Pipeline
Direct shadows
(raytrace or raster)
Direct lighting (compute) Reflections
(raytrace or compute)
Deferred shading (raster)
Global Illumination (raytrace) Post processing (compute)Transparency & Translucency
(raytrace)
Ambient occlusion
(raytrace or compute)
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Materials
▪ Multiple microfacet layers
▪ Rapidly experiment with different looks
▪ Bake down a number of layers for
production
▪ Energy conserving
▪ Automatic Fresnel between layers
▪ Inspired by Arbitrarily Layered Micro-
Facet Surfaces [Weidlich 2007]
▪ Unified for all lighting & rendering
modes
▪ Raster, hybrid, path-traced reference
Objects with Multi-Layered Materials
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Raytraced Reflections
▪ Launch rays from G-Buffer
▪ Raytrace at half resolution
▪ ¼ ray/pixel for reflection
▪ ¼ ray/pixel for reflected shadow
▪ Reconstruct at full resolution
▪ Arbitrary normals
▪ Spatially-varying roughness
Raytraced Reflections
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Reflection Pipeline
Importance
sampling
Screen-space
reflection Raytracing
Spatial
reconstruction
Envmap gap fill
Bilateral cleanup
Temporal
accumulation
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Reflection Sampling
▪ Microfacet importance sampling
▪ Normal distribution function (NDF) part of BRDF
▪ Very few rays, so quality matters
▪ Low-discrepancy Halton sequence
▪ Cranley-Patterson rotation per pixel [PBRT]
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Reflection Sampling
▪ Microfacet importance sampling
▪ Normal distribution function (NDF) part of BRDF
▪ Very few rays, so quality matters
▪ Low-discrepancy Halton sequence
▪ Cranley-Patterson rotation per pixel [PBRT]
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Reflection Sampling
▪ Microfacet importance sampling
▪ Normal distribution function (NDF) part of BRDF
▪ Very few rays, so quality matters
▪ Low-discrepancy Halton sequence
▪ Cranley-Patterson rotation per pixel [PBRT]
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Reflection Sampling
▪ Microfacet importance sampling
▪ Normal distribution function (NDF) part of BRDF
▪ Very few rays, so quality matters
▪ Low-discrepancy Halton sequence
▪ Cranley-Patterson rotation per pixel [PBRT]
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Reflection Sampling
▪ Microfacet importance sampling
▪ Normal distribution function (NDF) part of BRDF
▪ Very few rays, so quality matters
▪ Low-discrepancy Halton sequence
▪ Cranley-Patterson rotation per pixel [PBRT]
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Reflection Sampling
▪ Microfacet importance sampling
▪ Normal distribution function (NDF) part of BRDF
▪ Very few rays, so quality matters
▪ Low-discrepancy Halton sequence
▪ Cranley-Patterson rotation per pixel [PBRT]
▪ Re-roll if ray below horizon
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Reflection Sampling
▪ Microfacet importance sampling
▪ Normal distribution function (NDF) part of BRDF
▪ Very few rays, so quality matters
▪ Low-discrepancy Halton sequence
▪ Cranley-Patterson rotation per pixel [PBRT]
▪ Re-roll if ray below horizon
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Layered Material Sampling
▪ One ray for the whole stack
▪ Stochastically select a layer
▪ Based on layer visibility estimate
▪ Bottom layers occluded by top layers
▪ View-dependent due to Fresnel
▪ Approximate with Schlick
▪ Sample BRDF of selected layer
▪ Multiple layers can generate same direction
▪ Query each layer about generated direction
▪ Add up probabilities Multi-Layered Materials [Weidlich 2007]
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Reflection Raygen
▪ Read generated ray
▪ TraceRay()
▪ Same hit shaders as path-tracing reference
▪ Output packed in 2x RGBA 16F
Color R Color G Color B G-buffer Depth
Dir X * Hit T Dir Y * Hit T Dir Z * Hit T Inverse PDF
Raw raytrace output
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Why Stochastic?
▪ Gives right answer, but
▪ Produces noise
▪ Thrashes caches
▪ Alternative: post-filter
▪ Needs arbitrarily large kernel
▪ Introduces bleeding
▪ Sensitive to aliasing
▪ Meet in the middle?
▪ Bias samplers
▪ Combine with spatial filtering
▪ High variance -> increase bias
▪ More research needed!
Image Space Gathering [Robison 2009]
Raw raytrace output
+Spatial reconstruction
+Spatial reconstruction
▪ Based on Stochastic Screen-Space Reflections [Stachowiak 2015]
▪ For every full-res pixel, use 16 half-res ray hits
▪ Poisson-disk distribution around pixel
▪ Scale by local BRDF
▪ Divide by ray PDF
▪ Ratio estimator [Heitz 2018]
result = 0.0
weightSum = 0.0
for pixel in neighborhood:
weight = localBrdf(pixel.hit) / pixel.hitPdf
result += color(pixel.hit) * weight
weightSum += weight
result /= weightSum
Same ray hits used in 2x2 quads
Spatial upsampling
Disjoint sample sets in 2x2 quads
Spatial upsampling
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Spatial Sample Pattern
▪ Four sample sets for pixels in 2x2 quad
▪ Threshold blue noise into four classes
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Spatial Sample Pattern
▪ Four sample sets for pixels in 2x2 quad
▪ Threshold blue noise into four classes
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Spatial Sample Pattern
▪ Four sample sets for pixels in 2x2 quad
▪ Threshold blue noise into four classes
▪ Class determines sample set
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Spatial Sample Pattern
▪ Four sample sets for pixels in 2x2 quad
▪ Threshold blue noise into four classes
▪ Class determines sample set
▪ Take 16 samples from each set in a disk
▪ Disjoint high-quality samples
Spatial reconstruction
+Temporal accumulation
+Bilateral cleanup
+Bilateral cleanup
▪ Secondary bilateral filter
▪ Much dumber than reconstruction
▪ Introduces blur
▪ Only run where variance high
▪ Variance from spatial reconstruction
▪ Temporally smoothed with hysteresis = 0.5
▪ Variable kernel width, sample count
+Bilateral cleanup
▪ Secondary bilateral filter
▪ Much dumber than reconstruction
▪ Introduces blur
▪ Only run where variance high
▪ Variance from spatial reconstruction
▪ Temporally smoothed with hysteresis = 0.5
▪ Variable kernel width, sample count
Variance estimate
+Bilateral cleanup
+Temporal anti-aliasing
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Temporal Reprojection
▪ Two sources of velocity
▪ Per-pixel motion vector
▪ Reprojection of hit point
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Temporal Reprojection
▪ Neither reprojection method robust
Per-pixel motion vector Reprojection of hit point
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Dual-Source Reprojection
▪ Sample history using both
reprojection strategies
▪ Estimate local statistics during
spatial reconstruction
▪ RGB mean
▪ RGB standard deviation
▪ Of used hit samples
▪ Weigh contributions
▪ rgb_dist = (rgb – rgb_mean) / rgb_dev
▪ dist = (rgb – rgb_mean) / rgb_dev
▪ w = exp2(-10 * luma(dist))
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Reprojection Clamp
▪ Build color box from local statistics
▪ rgb_min = rgb_mean – rgb_dev
▪ rgb_max = rgb_mean + rgb_dev
▪ Clamp reprojected values to box
▪ rgb = clamp(rgb, rgb_min, rgb_max)
▪ Same idea as in temporal anti-aliasing
[Karis 2014]
▪ Weigh clamped contributions
▪ rgb_sum += val * w
▪ Introduces bias
▪ Fixes most ghosting
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Transparency & Translucency
▪ Raytracing enables accurate light scattering
▪ Refractions
▪ Order-independent (OIT)
▪ Variable roughness
▪ Handles multiple IOR transitions
▪ Beer-Lambert absorption
▪ Translucency
▪ Light scattering inside a medium
▪ Inspired by Translucency in Frostbite
[Barré-Brisebois 2011]
Glass and Translucency
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Integration
▪ Multiple samples required for rough
refractions and translucency
▪ Multi-layer screen-filtering complicated
▪ Layered framebuffers?
▪ Per-pixel linked lists?
▪ Filter in 2D or between layers?
▪ More research needed!
▪ Accumulate in texture-space instead
▪ Stable integration domain
▪ Static texture allocation
▪ 512*512 per object
▪ Time-sliced, ~1M rays/frame
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Translucency Breakdown
▪ For every valid position & normal
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Translucency Breakdown
▪ For every valid position & normal
▪ Flip normal and push (ray) inside
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Translucency Breakdown
▪ For every valid position & normal
▪ Flip normal and push (ray) inside
▪ Launch rays in uniform sphere dist.
▪ (Importance-sample phase function)
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Translucency Breakdown
▪ For every valid position & normal
▪ Flip normal and push (ray) inside
▪ Launch rays in uniform sphere dist.
▪ (Importance-sample phase function)
▪ Compute lighting at intersection
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Translucency Breakdown
▪ For every valid position & normal
▪ Flip normal and push (ray) inside
▪ Launch rays in uniform sphere dist.
▪ (Importance-sample phase function)
▪ Compute lighting at intersection
▪ Gather all samples
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Translucency Breakdown
▪ For every valid position & normal
▪ Flip normal and push (ray) inside
▪ Launch rays in uniform sphere dist.
▪ (Importance-sample phase function)
▪ Compute lighting at intersection
▪ Gather all samples
▪ Update value in texture
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Translucency Filtering
▪ Can denoise spatially and/or temporally
▪ Temporal: build an update heuristic
▪ Reactive enough for moving lights & objects
▪ Exponential moving average can be OK
▪ Variance-adaptive mean estimation
▪ Based on exponential moving average
▪ Adaptive hysteresis
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Transparency
▪ Similar approach to translucency
▪ Launch ray using view’s origin and direction
▪ Refract based on medium's index of refraction
▪ Sample a BSDF for rough refraction
▪ Trace a ray in the scene & sample lighting
▪ Tint the result
▪ Chromatic aberration from interface
▪ Beer-Lambert absorption in medium
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Transparency
▪ Similar approach to translucency
▪ Launch ray using view’s origin and direction
▪ Refract based on medium's index of refraction
▪ Sample a BSDF for rough refraction
▪ Trace a ray in the scene & sample lighting
▪ Tint the result
▪ Chromatic aberration from interface
▪ Beer-Lambert absorption in medium
▪ Pen: we don’t handle transparent shadows yet
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Global
Illumination
▪ Important for consistency
▪ Minimize artist overhead
▪ We want a technique with:
▪ No precomputation
▪ No parametrization (UVs, proxies)
▪ Support for static and dynamic scenes
▪ Adaptive refinement
Indirect diffuse off
Indirect diffuse on
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Spatial Storage
▪ Can’t afford to solve every frame
▪ Our GI budget: 250k rays / frame
▪ World space vs screen space
▪ World space is stable
▪ Screen-space fully dynamic
▪ World space surfels
▪ Easy to accumulate
▪ Distribute on the fly
▪ No parameterization
▪ Smooth result by construction
▪ Position, normal, radius, animation info
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Surfel Skinning
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Surfel Skinning
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Surfel Screen Application
▪ Render like deferred light sources
▪ Diffuse only
▪ Smoothstep distance attenuation
▪ Mahalanobis metric
▪ Squared dot of normals angular weight
▪ Inspired by [Lehtinen 2008]
▪ World-space 3D culling
▪ Uniform grid
▪ Each cell holds list of surfels
▪ Find one cell per pixel, use all from list
Combine with Screen Space AO [Jimenez 2016]
Combine with Screen Space AO [Jimenez 2016]
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Surfel Placement
Surfel Spawning From Camera @ 1% speed
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Surfel Placement
Surfel Spawning From Camera @ 1% speed
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Surfel Placement
Surfel Spawning From Camera @ 1% speed
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Surfel Placement Algorithm
▪ Iterative screen-space hole filling
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Surfel Placement Algorithm
▪ Iterative screen-space hole filling
▪ Calculate surfel coverage for each pixel
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Surfel Placement Algorithm
▪ Iterative screen-space hole filling
▪ Calculate surfel coverage for each pixel
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Surfel Placement Algorithm
▪ Iterative screen-space hole filling
▪ Calculate surfel coverage for each pixel
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Surfel Placement Algorithm
▪ Iterative screen-space hole filling
▪ Calculate surfel coverage for each pixel
▪ Find lowest coverage in tile (16x16 pixels)
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Surfel Placement Algorithm
▪ Iterative screen-space hole filling
▪ Calculate surfel coverage for each pixel
▪ Find lowest coverage in tile (16x16 pixels)
▪ Probabilistically spawn surfel on pixel
▪ Chance proportional to pixel’s projected area
▪ G-Buffer depth and normal
▪ Continue where coverage below threshold
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Irradiance Calculation
▪ Path trace from surfels
▪ Unidirectional, explicit light connections
▪ More samples for new surfels
Scene geometry
Surfel
Sky
Light source
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Irradiance Calculation
▪ Path trace from surfels
▪ Unidirectional, explicit light connections
▪ More samples for new surfels
▪ Limit light path length
▪ Sample previous GI at last bounce
▪ "Infinite" bounces amortized over frames
Query surfels at hit point
Surfel
Light source
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Monte Carlo Integration
▪ Monte Carlo assumes
immutable integrand
▪ Plain old mean estimation
▪ Can’t use in dynamic GI
▪ Hard reset undesirable
Interactive GI in Frostbite [Hillaire 2018]
ҧ𝑥0 = 0
ҧ𝑥 𝑛+1 = 𝑙𝑒𝑟𝑝 ҧ𝑥 𝑛, 𝑥 𝑛+1,
1
𝑛 + 1
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Adaptive Integration
▪ Give up on fully converging
▪ Exponential moving average
▪ Estimate short-term statistics
▪ Mean, variance
▪ Adapt blend factor 𝑘
▪ Reduce if variance high
▪ Increase if mean far from short-term
statistics
ҧ𝑥0 = 0
ҧ𝑥 𝑛+1 = 𝑙𝑒𝑟𝑝 ҧ𝑥 𝑛, 𝑥 𝑛+1, 𝑘
Adaptive integration in 1D
Exponential moving averageAdaptive mean
Short-term
distribution bounds
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Shadows
▪ Hard shadows trivial
▪ Launch a ray towards light position
▪ Check for any hit
▪ Soft shadows easy
▪ Sample direction from uniform cone [PBRT]
▪ Cone width determines penumbra
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Shadows
▪ Hard shadows trivial
▪ Launch a ray towards light position
▪ Check for any hit
▪ Soft shadows easy
▪ Sample direction from uniform cone [PBRT]
▪ Cone width determines penumbra
▪ … Easy but noisy
▪ 1 visibility sample per pixel not enough
▪ Filter instead of shooting more
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Shadow Filtering
▪ Based on Nvidia’s SVGF [Schied 2017]
▪ Temporal accumulation
▪ Multi-pass weighted blur
▪ Kernel size driven by variance estimate
▪ No shadow-specific heuristics
Accumulate
temporally
Blur
Estimate
variance
Blur some
more
(Over)simplified diagram of SVGF
Input
Output
Hard Raytraced Shadows Soft Raytraced Shadows (Unfiltered) Soft Raytraced Shadows (Filtered)
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Shadow Filtering
▪ Modified to reduce ghosting
▪ TAA-like color clip
▪ Variance-based bounds (5x5 kernel) [Salvi 2016]
Baseline SVGF +TAA-like clip
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Summary
▪ Replace fine-tuned hacks with unified approaches
▪ Reconstruction and filtering instead
▪ New tool in the box
▪ Solve sparse and incoherent problems
▪ Not a silver bullet
▪ Use rays wisely
▪ Pica Pica shoots ~2.25 rays per pixel
▪ Real-time visuals with (almost) path traced quality
achievable today
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Thanks
▪ SEED
▪ Johan Andersson
▪ Colin Barré-Brisebois
▪ Jasper Bekkers
▪ Joakim Bergdahl
▪ Ken Brown
▪ Dean Calver
▪ Dirk de la Hunt
▪ Jenna Frisk
▪ Paul Greveson
▪ Henrik Halen
▪ Effeli Holst
▪ Andrew Lauritzen
▪ Magnus Nordin
▪ Niklas Nummelin
▪ Anastasia Opara
▪ Kristoffer Sjöö
▪ Ida Winterhaven
▪ Graham Wihlidal
▪ Microsoft
▪ Chas Boyd
▪ Ivan Nevraev
▪ Amar Patel
▪ Matt Sandy
▪ NVIDIA
▪ Tomas Akenine-Möller
▪ Nir Benty
▪ Jiho Choi
▪ Peter Harrison
▪ Alex Hyder
▪ Jon Jansen
▪ Aaron Lefohn
▪ Ignacio Llamas
▪ Henry Moreton
▪ Martin Stich
S E E D / / S E A R C H F O R E X T R A O R D I N A R Y E X P E R I E N C E S D I V I S I O N
S T O C K H O L M – L O S A N G E L E S – M O N T R É A L – R E M O T E
W W W . E A . C O M / S E E D
W E ‘ R E H I R I N G !
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Questions?
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
References▪ [Harmer 2018] Jack Harmer, Linus Gisslén, Henrik Holst, Joakim Bergdahl, Tom Olsson, Kristoffer Sjöö and Magnus Nordin“ Imitation Learning with
Concurrent Actions in 3D Games”. available online
▪ [Barré-Brisebois 2011] Barré-Brisebois, Colin and Bouchard, Marc. “Approximating Translucency for a Fast, Cheap and Convincing Subsurface Scattering
Look”, available online.
▪ [Barré-Brisebois 2017] Barré-Brisebois, Colin. “A Certain Slant of Light: Past, Present and Future Challenges of Global Illumination in Games”, available
online.
▪ [Igehy 1999] Igehy, Homan. “Tracing Ray Differentials”, available online.
▪ [PBRT] Pharr, Matt. Jakob, Wenzel and Humphreys, Greg. “Physically Based Rendering”, Book, http://www.pbrt.org/.
▪ [Schied 2017] Schied, Christoph et. Al. “Spatiotemporal Variance-Guided Filtering: Real-Time Reconstruction for Path-Traced Global Illumination”, NVIDIA
Research, available online.
▪ [Stachowiak 2015] Stachowiak, Tomasz. “Stochastic Screen-Space Reflections”, available online.
▪ [Weidlich 2007] Weidlich, Andrea and Wilkie, Alexander. “Arbitrarily Layered Micro-Facet Surfaces”, available online.
▪ [Williams 1983] Williams, Lance. “Pyramidal Parametrics”, available online.
▪ [Robison 2009] Austin Robison, Peter Shirley. "Image Space Gathering", available online.
▪ [Heitz 2018] Eric Heitz, Stephen Hill, Morgan McGuire. "Combining Analytic Direct Illumination and Stochastic Shadows", available online.
▪ [Karis 2014] Brian Karis. "High-Quality Temporal Supersampling", available online.
▪ [Lehtinen 2008] Jaakko Lehtinen, Matthias Zwicker, Emmanuel Turquin, Janne Kontkanen, Frédo Durand, François Sillion, Timo Aila. "A Meshless Hierarchical
▪ Representation for Light Transport“, available online.
▪ [Jimenez 2016] Jorge Jimenez, Xian-Chun Wu, Angelo Pesce, Adrian Jarabo. "Practical Realtime Strategies for Accurate Indirect Occlusion", available online.
▪ [Opara 2018] Anastasia Opara. “Creativity of Rules and Patterns”, available online.
▪ [Salvi 2016] Marco Salvi. "An excursion in temporal super sampling", available online.
▪ [Hillaire 2018] Sébastien Hillaire. "Real-time Raytracing for Interactive Global Illumination Workflows in Frostbite", available online.
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Bonus
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Texture Level-of-Detail
What about texture level of detail?
▪ Mipmapping [Williams 1983] is the standard method to avoid texture aliasing:
▪ Screen-space pixel maps to approximately one texel in the mipmap hierarchy
▪ Supported by all GPUs for rasterization via shading quad and derivatives
Left: level-of-detail (λ), partial derivatives and the parallelogram-approximated texture-space footprint of a pixel. Right: mipmap chain
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Texture Level-of-Detail
No shading quads for ray tracing!
▪ Traditionaly: Ray Differentials
▪ Estimates the footprint of a pixel by
computing world-space derivatives of the
ray with respect to the image plane
▪ Have to differentiate (virtual offset) rays
▪ Heavier payload (12 floats) for subsequent
rays (can) affect performance. Optimize!
▪ Alternative: always sample mip 0 with bilinear filtering (with extra samples)
▪ Leads to aliasing and additional performance cost
Ray Differentials [Igehy99]
Surface
P(x + ∂x)
D(x + ∂x)P(x)
∂D(x)
∂P(x)
D(x)
D(x)
x
y
R(x)
R(x + ∂x)
∂x
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
Texture Level-of-Detail
Together with Research, we
developed a texture LOD technique for raytracing:
▪ Heuristic based on triangle properties, a curvature
estimate, distance, and incident angle
▪ Similar quality to ray differentials with single trilinear lookup
▪ Single value stored in the payload for subsequent rays
▪ Upcoming publication by:
▪ Tomas Akenine-Möller (NV), Magnus Andersson (NV), Colin
Barré-Brisebois (EA), Jim Nilsson (NV), Robert Toth (NV)
Ground Truth, Ray Differentials, Ours, Mip0
S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering
Programming and Technology Track, Digital Dragons 2018
mGPU
▪ Explicit Heterogenous Multi-GPU
▪ Parallel Fork-Join Style
▪ Resources copied through system
memory using copy queue
▪ Minimize PCI-E transfers
▪ Approach
▪ Run ray generation on primary GPU
▪ Copy results in sub-regions to other GPUs
▪ Run tracing phases on separate GPUs
▪ Copy tracing results back to primary GPU
▪ Run filtering on primary GPU
Ray
Generation
Copy Sub Regions
Copy Sub Regions
GPU1 GPU2 GPU3 GPU4
Trace
GPU 2
Trace
GPU 1
Trace
GPU 3
Trace
GPU 4
Filter

More Related Content

What's hot

Stochastic Screen-Space Reflections
Stochastic Screen-Space ReflectionsStochastic Screen-Space Reflections
Stochastic Screen-Space Reflections
Electronic Arts / DICE
 
Lighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow FallLighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow Fall
Guerrilla
 
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
Electronic Arts / DICE
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
Electronic Arts / DICE
 
Physically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbitePhysically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in Frostbite
Electronic Arts / DICE
 
Voxel based global-illumination
Voxel based global-illuminationVoxel based global-illumination
Voxel based global-illumination
SeyedMorteza Mostajabodaveh
 
Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)
Tiago Sousa
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The Surge
Michele Giacalone
 
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's EdgeThe Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
Electronic Arts / DICE
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Tiago Sousa
 
Lighting the City of Glass
Lighting the City of GlassLighting the City of Glass
Lighting the City of Glass
Electronic Arts / DICE
 
Taking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next GenerationTaking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next Generation
Guerrilla
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John HableNaughty Dog
 
Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)
Tiago Sousa
 
Real-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesReal-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesJangho Lee
 
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunFive Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Electronic Arts / DICE
 
Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1
Ki Hyunwoo
 
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
Philip Hammer
 
Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3
Electronic Arts / DICE
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Johan Andersson
 

What's hot (20)

Stochastic Screen-Space Reflections
Stochastic Screen-Space ReflectionsStochastic Screen-Space Reflections
Stochastic Screen-Space Reflections
 
Lighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow FallLighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow Fall
 
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
 
Physically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbitePhysically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in Frostbite
 
Voxel based global-illumination
Voxel based global-illuminationVoxel based global-illumination
Voxel based global-illumination
 
Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The Surge
 
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's EdgeThe Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)
 
Lighting the City of Glass
Lighting the City of GlassLighting the City of Glass
Lighting the City of Glass
 
Taking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next GenerationTaking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next Generation
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John Hable
 
Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)
 
Real-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesReal-Time Global Illumination Techniques
Real-Time Global Illumination Techniques
 
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunFive Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
 
Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1
 
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
 
Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
 

Similar to DD18 - SEED - Raytracing in Hybrid Real-Time Rendering

Shiny Pixels and Beyond: Real-Time Raytracing at SEED
Shiny Pixels and Beyond: Real-Time Raytracing at SEEDShiny Pixels and Beyond: Real-Time Raytracing at SEED
Shiny Pixels and Beyond: Real-Time Raytracing at SEED
Electronic Arts / DICE
 
SIGGRAPH 2018 - PICA PICA and NVIDIA Turing
SIGGRAPH 2018 - PICA PICA and NVIDIA TuringSIGGRAPH 2018 - PICA PICA and NVIDIA Turing
SIGGRAPH 2018 - PICA PICA and NVIDIA Turing
Electronic Arts / DICE
 
Dissecting the Rendering of The Surge
Dissecting the Rendering of The SurgeDissecting the Rendering of The Surge
Dissecting the Rendering of The Surge
Philip Hammer
 
Interactive Stereoscopic Rendering for Non-Planar Projections (GRAPP 2009)
Interactive Stereoscopic Rendering for Non-Planar Projections (GRAPP 2009)Interactive Stereoscopic Rendering for Non-Planar Projections (GRAPP 2009)
Interactive Stereoscopic Rendering for Non-Planar Projections (GRAPP 2009)Matthias Trapp
 
Foveated Ray Tracing for VR on Multiple GPUs
Foveated Ray Tracing for VR on Multiple GPUsFoveated Ray Tracing for VR on Multiple GPUs
Foveated Ray Tracing for VR on Multiple GPUs
Takahiro Harada
 
[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...
[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...
[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...
Takahiro Harada
 
Syysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray Tracing
Syysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray TracingSyysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray Tracing
Syysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray Tracing
Electronic Arts / DICE
 
NVIDIA effects GDC09
NVIDIA effects GDC09NVIDIA effects GDC09
NVIDIA effects GDC09IGDA_London
 
3D SLAM introcution& current status
3D SLAM introcution& current status3D SLAM introcution& current status
3D SLAM introcution& current status
e8xu
 
ICRA Nathan Piasco
ICRA Nathan PiascoICRA Nathan Piasco
ICRA Nathan Piasco
Nathan Piasco
 
Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo Postmortem
Guerrilla
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-Graphics
Electronic Arts / DICE
 
DS CATIA V5 and Virtools: KBE & Behavioral Simulation
DS CATIA V5 and Virtools: KBE & Behavioral SimulationDS CATIA V5 and Virtools: KBE & Behavioral Simulation
DS CATIA V5 and Virtools: KBE & Behavioral Simulationfftoledo
 
[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow
[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow
[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow
Takahiro Harada
 
How the Universal Render Pipeline unlocks games for you - Unite Copenhagen 2019
How the Universal Render Pipeline unlocks games for you - Unite Copenhagen 2019How the Universal Render Pipeline unlocks games for you - Unite Copenhagen 2019
How the Universal Render Pipeline unlocks games for you - Unite Copenhagen 2019
Unity Technologies
 
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...Johan Andersson
 
Chris Varekamp (Philips Group Innovation, Research): Depth estimation, Proces...
Chris Varekamp (Philips Group Innovation, Research): Depth estimation, Proces...Chris Varekamp (Philips Group Innovation, Research): Depth estimation, Proces...
Chris Varekamp (Philips Group Innovation, Research): Depth estimation, Proces...
AugmentedWorldExpo
 
Computer Graphics Part1
Computer Graphics Part1Computer Graphics Part1
Computer Graphics Part1
qpqpqp
 
3D Multi Object GAN
3D Multi Object GAN3D Multi Object GAN
3D Multi Object GAN
Yu Nishimura
 
Unity: Next Level Rendering Quality
Unity: Next Level Rendering QualityUnity: Next Level Rendering Quality
Unity: Next Level Rendering Quality
Unity Technologies
 

Similar to DD18 - SEED - Raytracing in Hybrid Real-Time Rendering (20)

Shiny Pixels and Beyond: Real-Time Raytracing at SEED
Shiny Pixels and Beyond: Real-Time Raytracing at SEEDShiny Pixels and Beyond: Real-Time Raytracing at SEED
Shiny Pixels and Beyond: Real-Time Raytracing at SEED
 
SIGGRAPH 2018 - PICA PICA and NVIDIA Turing
SIGGRAPH 2018 - PICA PICA and NVIDIA TuringSIGGRAPH 2018 - PICA PICA and NVIDIA Turing
SIGGRAPH 2018 - PICA PICA and NVIDIA Turing
 
Dissecting the Rendering of The Surge
Dissecting the Rendering of The SurgeDissecting the Rendering of The Surge
Dissecting the Rendering of The Surge
 
Interactive Stereoscopic Rendering for Non-Planar Projections (GRAPP 2009)
Interactive Stereoscopic Rendering for Non-Planar Projections (GRAPP 2009)Interactive Stereoscopic Rendering for Non-Planar Projections (GRAPP 2009)
Interactive Stereoscopic Rendering for Non-Planar Projections (GRAPP 2009)
 
Foveated Ray Tracing for VR on Multiple GPUs
Foveated Ray Tracing for VR on Multiple GPUsFoveated Ray Tracing for VR on Multiple GPUs
Foveated Ray Tracing for VR on Multiple GPUs
 
[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...
[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...
[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...
 
Syysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray Tracing
Syysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray TracingSyysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray Tracing
Syysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray Tracing
 
NVIDIA effects GDC09
NVIDIA effects GDC09NVIDIA effects GDC09
NVIDIA effects GDC09
 
3D SLAM introcution& current status
3D SLAM introcution& current status3D SLAM introcution& current status
3D SLAM introcution& current status
 
ICRA Nathan Piasco
ICRA Nathan PiascoICRA Nathan Piasco
ICRA Nathan Piasco
 
Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo Postmortem
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-Graphics
 
DS CATIA V5 and Virtools: KBE & Behavioral Simulation
DS CATIA V5 and Virtools: KBE & Behavioral SimulationDS CATIA V5 and Virtools: KBE & Behavioral Simulation
DS CATIA V5 and Virtools: KBE & Behavioral Simulation
 
[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow
[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow
[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow
 
How the Universal Render Pipeline unlocks games for you - Unite Copenhagen 2019
How the Universal Render Pipeline unlocks games for you - Unite Copenhagen 2019How the Universal Render Pipeline unlocks games for you - Unite Copenhagen 2019
How the Universal Render Pipeline unlocks games for you - Unite Copenhagen 2019
 
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...
 
Chris Varekamp (Philips Group Innovation, Research): Depth estimation, Proces...
Chris Varekamp (Philips Group Innovation, Research): Depth estimation, Proces...Chris Varekamp (Philips Group Innovation, Research): Depth estimation, Proces...
Chris Varekamp (Philips Group Innovation, Research): Depth estimation, Proces...
 
Computer Graphics Part1
Computer Graphics Part1Computer Graphics Part1
Computer Graphics Part1
 
3D Multi Object GAN
3D Multi Object GAN3D Multi Object GAN
3D Multi Object GAN
 
Unity: Next Level Rendering Quality
Unity: Next Level Rendering QualityUnity: Next Level Rendering Quality
Unity: Next Level Rendering Quality
 

More from Electronic Arts / DICE

GDC2019 - SEED - Towards Deep Generative Models in Game Development
GDC2019 - SEED - Towards Deep Generative Models in Game DevelopmentGDC2019 - SEED - Towards Deep Generative Models in Game Development
GDC2019 - SEED - Towards Deep Generative Models in Game Development
Electronic Arts / DICE
 
SIGGRAPH 2010 - Style and Gameplay in the Mirror's Edge
SIGGRAPH 2010 - Style and Gameplay in the Mirror's EdgeSIGGRAPH 2010 - Style and Gameplay in the Mirror's Edge
SIGGRAPH 2010 - Style and Gameplay in the Mirror's Edge
Electronic Arts / DICE
 
SEED - Halcyon Architecture
SEED - Halcyon ArchitectureSEED - Halcyon Architecture
SEED - Halcyon Architecture
Electronic Arts / DICE
 
Khronos Munich 2018 - Halcyon and Vulkan
Khronos Munich 2018 - Halcyon and VulkanKhronos Munich 2018 - Halcyon and Vulkan
Khronos Munich 2018 - Halcyon and Vulkan
Electronic Arts / DICE
 
CEDEC 2018 - Functional Symbiosis of Art Direction and Proceduralism
CEDEC 2018 - Functional Symbiosis of Art Direction and ProceduralismCEDEC 2018 - Functional Symbiosis of Art Direction and Proceduralism
CEDEC 2018 - Functional Symbiosis of Art Direction and Proceduralism
Electronic Arts / DICE
 
EPC 2018 - SEED - Exploring The Collaboration Between Proceduralism & Deep Le...
EPC 2018 - SEED - Exploring The Collaboration Between Proceduralism & Deep Le...EPC 2018 - SEED - Exploring The Collaboration Between Proceduralism & Deep Le...
EPC 2018 - SEED - Exploring The Collaboration Between Proceduralism & Deep Le...
Electronic Arts / DICE
 
Creativity of Rules and Patterns: Designing Procedural Systems
Creativity of Rules and Patterns: Designing Procedural SystemsCreativity of Rules and Patterns: Designing Procedural Systems
Creativity of Rules and Patterns: Designing Procedural Systems
Electronic Arts / DICE
 
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in FrostbitePhysically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Electronic Arts / DICE
 
High Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in FrostbiteHigh Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in Frostbite
Electronic Arts / DICE
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
Electronic Arts / DICE
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars Battlefront
Electronic Arts / DICE
 
Rendering Battlefield 4 with Mantle
Rendering Battlefield 4 with MantleRendering Battlefield 4 with Mantle
Rendering Battlefield 4 with Mantle
Electronic Arts / DICE
 
Mantle for Developers
Mantle for DevelopersMantle for Developers
Mantle for Developers
Electronic Arts / DICE
 
Battlefield 4 + Frostbite + Mantle
Battlefield 4 + Frostbite + MantleBattlefield 4 + Frostbite + Mantle
Battlefield 4 + Frostbite + Mantle
Electronic Arts / DICE
 
5 Major Challenges in Real-time Rendering (2012)
5 Major Challenges in Real-time Rendering (2012)5 Major Challenges in Real-time Rendering (2012)
5 Major Challenges in Real-time Rendering (2012)
Electronic Arts / DICE
 
Modular Rigging in Battlefield 3
Modular Rigging in Battlefield 3Modular Rigging in Battlefield 3
Modular Rigging in Battlefield 3
Electronic Arts / DICE
 

More from Electronic Arts / DICE (16)

GDC2019 - SEED - Towards Deep Generative Models in Game Development
GDC2019 - SEED - Towards Deep Generative Models in Game DevelopmentGDC2019 - SEED - Towards Deep Generative Models in Game Development
GDC2019 - SEED - Towards Deep Generative Models in Game Development
 
SIGGRAPH 2010 - Style and Gameplay in the Mirror's Edge
SIGGRAPH 2010 - Style and Gameplay in the Mirror's EdgeSIGGRAPH 2010 - Style and Gameplay in the Mirror's Edge
SIGGRAPH 2010 - Style and Gameplay in the Mirror's Edge
 
SEED - Halcyon Architecture
SEED - Halcyon ArchitectureSEED - Halcyon Architecture
SEED - Halcyon Architecture
 
Khronos Munich 2018 - Halcyon and Vulkan
Khronos Munich 2018 - Halcyon and VulkanKhronos Munich 2018 - Halcyon and Vulkan
Khronos Munich 2018 - Halcyon and Vulkan
 
CEDEC 2018 - Functional Symbiosis of Art Direction and Proceduralism
CEDEC 2018 - Functional Symbiosis of Art Direction and ProceduralismCEDEC 2018 - Functional Symbiosis of Art Direction and Proceduralism
CEDEC 2018 - Functional Symbiosis of Art Direction and Proceduralism
 
EPC 2018 - SEED - Exploring The Collaboration Between Proceduralism & Deep Le...
EPC 2018 - SEED - Exploring The Collaboration Between Proceduralism & Deep Le...EPC 2018 - SEED - Exploring The Collaboration Between Proceduralism & Deep Le...
EPC 2018 - SEED - Exploring The Collaboration Between Proceduralism & Deep Le...
 
Creativity of Rules and Patterns: Designing Procedural Systems
Creativity of Rules and Patterns: Designing Procedural SystemsCreativity of Rules and Patterns: Designing Procedural Systems
Creativity of Rules and Patterns: Designing Procedural Systems
 
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in FrostbitePhysically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
 
High Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in FrostbiteHigh Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in Frostbite
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars Battlefront
 
Rendering Battlefield 4 with Mantle
Rendering Battlefield 4 with MantleRendering Battlefield 4 with Mantle
Rendering Battlefield 4 with Mantle
 
Mantle for Developers
Mantle for DevelopersMantle for Developers
Mantle for Developers
 
Battlefield 4 + Frostbite + Mantle
Battlefield 4 + Frostbite + MantleBattlefield 4 + Frostbite + Mantle
Battlefield 4 + Frostbite + Mantle
 
5 Major Challenges in Real-time Rendering (2012)
5 Major Challenges in Real-time Rendering (2012)5 Major Challenges in Real-time Rendering (2012)
5 Major Challenges in Real-time Rendering (2012)
 
Modular Rigging in Battlefield 3
Modular Rigging in Battlefield 3Modular Rigging in Battlefield 3
Modular Rigging in Battlefield 3
 

Recently uploaded

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 

Recently uploaded (20)

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 

DD18 - SEED - Raytracing in Hybrid Real-Time Rendering

  • 1. Stochastic all the things: Raytracing in hybrid real-time rendering Tomasz Stachowiak SEED – Electronic Arts
  • 2.
  • 3. Watch the trailer here: https://www.youtube.com/watch?v=LXo0WdlELJk
  • 4. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 “PICA PICA” ▪ Exploratory mini-game & world ▪ For our self-learning AI agents to play, not for humans ☺ ▪ “Imitation Learning with Concurrent Actions in 3D Games” [Harmer 2018] ▪ Uses SEED’s Halcyon R&D engine ▪ Goals ▪ Explore hybrid rendering with DXR ▪ Clean and consistent visuals ▪ Procedural worlds [Opara 2018] ▪ No precomputation
  • 5. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Agenda ▪ Motivation ▪ Reflections ▪ Translucency and Transparency ▪ Global Illumination ▪ Shadows
  • 6. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Why use raytracing?
  • 7. Path tracing ~15 seconds accumulation
  • 8. Path tracing (1 sample per pixel)
  • 11. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Is this a fair comparison? ▪ “Classic” game solutions exist ▪ Local reflection volumes ▪ Planar reflections ▪ Lightmaps ▪ “Sky visibility” maps ▪ …
  • 12. Zero artist overhead 1. Enable raytracing 2. ??? 3. PROFIT!
  • 13. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Hybrid Rendering Pipeline Direct shadows (raytrace or raster) Direct lighting (compute) Reflections (raytrace or compute) Deferred shading (raster) Global Illumination (raytrace) Post processing (compute)Transparency & Translucency (raytrace) Ambient occlusion (raytrace or compute)
  • 14. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Materials ▪ Multiple microfacet layers ▪ Rapidly experiment with different looks ▪ Bake down a number of layers for production ▪ Energy conserving ▪ Automatic Fresnel between layers ▪ Inspired by Arbitrarily Layered Micro- Facet Surfaces [Weidlich 2007] ▪ Unified for all lighting & rendering modes ▪ Raster, hybrid, path-traced reference Objects with Multi-Layered Materials
  • 15. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Raytraced Reflections ▪ Launch rays from G-Buffer ▪ Raytrace at half resolution ▪ ¼ ray/pixel for reflection ▪ ¼ ray/pixel for reflected shadow ▪ Reconstruct at full resolution ▪ Arbitrary normals ▪ Spatially-varying roughness Raytraced Reflections
  • 16. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Reflection Pipeline Importance sampling Screen-space reflection Raytracing Spatial reconstruction Envmap gap fill Bilateral cleanup Temporal accumulation
  • 17. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Reflection Sampling ▪ Microfacet importance sampling ▪ Normal distribution function (NDF) part of BRDF ▪ Very few rays, so quality matters ▪ Low-discrepancy Halton sequence ▪ Cranley-Patterson rotation per pixel [PBRT]
  • 18. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Reflection Sampling ▪ Microfacet importance sampling ▪ Normal distribution function (NDF) part of BRDF ▪ Very few rays, so quality matters ▪ Low-discrepancy Halton sequence ▪ Cranley-Patterson rotation per pixel [PBRT]
  • 19. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Reflection Sampling ▪ Microfacet importance sampling ▪ Normal distribution function (NDF) part of BRDF ▪ Very few rays, so quality matters ▪ Low-discrepancy Halton sequence ▪ Cranley-Patterson rotation per pixel [PBRT]
  • 20. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Reflection Sampling ▪ Microfacet importance sampling ▪ Normal distribution function (NDF) part of BRDF ▪ Very few rays, so quality matters ▪ Low-discrepancy Halton sequence ▪ Cranley-Patterson rotation per pixel [PBRT]
  • 21. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Reflection Sampling ▪ Microfacet importance sampling ▪ Normal distribution function (NDF) part of BRDF ▪ Very few rays, so quality matters ▪ Low-discrepancy Halton sequence ▪ Cranley-Patterson rotation per pixel [PBRT]
  • 22. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Reflection Sampling ▪ Microfacet importance sampling ▪ Normal distribution function (NDF) part of BRDF ▪ Very few rays, so quality matters ▪ Low-discrepancy Halton sequence ▪ Cranley-Patterson rotation per pixel [PBRT] ▪ Re-roll if ray below horizon
  • 23. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Reflection Sampling ▪ Microfacet importance sampling ▪ Normal distribution function (NDF) part of BRDF ▪ Very few rays, so quality matters ▪ Low-discrepancy Halton sequence ▪ Cranley-Patterson rotation per pixel [PBRT] ▪ Re-roll if ray below horizon
  • 24. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Layered Material Sampling ▪ One ray for the whole stack ▪ Stochastically select a layer ▪ Based on layer visibility estimate ▪ Bottom layers occluded by top layers ▪ View-dependent due to Fresnel ▪ Approximate with Schlick ▪ Sample BRDF of selected layer ▪ Multiple layers can generate same direction ▪ Query each layer about generated direction ▪ Add up probabilities Multi-Layered Materials [Weidlich 2007]
  • 25. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Reflection Raygen ▪ Read generated ray ▪ TraceRay() ▪ Same hit shaders as path-tracing reference ▪ Output packed in 2x RGBA 16F Color R Color G Color B G-buffer Depth Dir X * Hit T Dir Y * Hit T Dir Z * Hit T Inverse PDF
  • 27. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Why Stochastic? ▪ Gives right answer, but ▪ Produces noise ▪ Thrashes caches ▪ Alternative: post-filter ▪ Needs arbitrarily large kernel ▪ Introduces bleeding ▪ Sensitive to aliasing ▪ Meet in the middle? ▪ Bias samplers ▪ Combine with spatial filtering ▪ High variance -> increase bias ▪ More research needed! Image Space Gathering [Robison 2009]
  • 30. +Spatial reconstruction ▪ Based on Stochastic Screen-Space Reflections [Stachowiak 2015] ▪ For every full-res pixel, use 16 half-res ray hits ▪ Poisson-disk distribution around pixel ▪ Scale by local BRDF ▪ Divide by ray PDF ▪ Ratio estimator [Heitz 2018] result = 0.0 weightSum = 0.0 for pixel in neighborhood: weight = localBrdf(pixel.hit) / pixel.hitPdf result += color(pixel.hit) * weight weightSum += weight result /= weightSum
  • 31. Same ray hits used in 2x2 quads Spatial upsampling
  • 32. Disjoint sample sets in 2x2 quads Spatial upsampling
  • 33. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Spatial Sample Pattern ▪ Four sample sets for pixels in 2x2 quad ▪ Threshold blue noise into four classes
  • 34. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Spatial Sample Pattern ▪ Four sample sets for pixels in 2x2 quad ▪ Threshold blue noise into four classes
  • 35. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Spatial Sample Pattern ▪ Four sample sets for pixels in 2x2 quad ▪ Threshold blue noise into four classes ▪ Class determines sample set
  • 36. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Spatial Sample Pattern ▪ Four sample sets for pixels in 2x2 quad ▪ Threshold blue noise into four classes ▪ Class determines sample set ▪ Take 16 samples from each set in a disk ▪ Disjoint high-quality samples
  • 40. +Bilateral cleanup ▪ Secondary bilateral filter ▪ Much dumber than reconstruction ▪ Introduces blur ▪ Only run where variance high ▪ Variance from spatial reconstruction ▪ Temporally smoothed with hysteresis = 0.5 ▪ Variable kernel width, sample count
  • 41. +Bilateral cleanup ▪ Secondary bilateral filter ▪ Much dumber than reconstruction ▪ Introduces blur ▪ Only run where variance high ▪ Variance from spatial reconstruction ▪ Temporally smoothed with hysteresis = 0.5 ▪ Variable kernel width, sample count Variance estimate
  • 44. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Temporal Reprojection ▪ Two sources of velocity ▪ Per-pixel motion vector ▪ Reprojection of hit point
  • 45. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Temporal Reprojection ▪ Neither reprojection method robust Per-pixel motion vector Reprojection of hit point
  • 46. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Dual-Source Reprojection ▪ Sample history using both reprojection strategies ▪ Estimate local statistics during spatial reconstruction ▪ RGB mean ▪ RGB standard deviation ▪ Of used hit samples ▪ Weigh contributions ▪ rgb_dist = (rgb – rgb_mean) / rgb_dev ▪ dist = (rgb – rgb_mean) / rgb_dev ▪ w = exp2(-10 * luma(dist))
  • 47. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Reprojection Clamp ▪ Build color box from local statistics ▪ rgb_min = rgb_mean – rgb_dev ▪ rgb_max = rgb_mean + rgb_dev ▪ Clamp reprojected values to box ▪ rgb = clamp(rgb, rgb_min, rgb_max) ▪ Same idea as in temporal anti-aliasing [Karis 2014] ▪ Weigh clamped contributions ▪ rgb_sum += val * w ▪ Introduces bias ▪ Fixes most ghosting
  • 48. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Transparency & Translucency ▪ Raytracing enables accurate light scattering ▪ Refractions ▪ Order-independent (OIT) ▪ Variable roughness ▪ Handles multiple IOR transitions ▪ Beer-Lambert absorption ▪ Translucency ▪ Light scattering inside a medium ▪ Inspired by Translucency in Frostbite [Barré-Brisebois 2011] Glass and Translucency
  • 49. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Integration ▪ Multiple samples required for rough refractions and translucency ▪ Multi-layer screen-filtering complicated ▪ Layered framebuffers? ▪ Per-pixel linked lists? ▪ Filter in 2D or between layers? ▪ More research needed! ▪ Accumulate in texture-space instead ▪ Stable integration domain ▪ Static texture allocation ▪ 512*512 per object ▪ Time-sliced, ~1M rays/frame
  • 50. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Translucency Breakdown ▪ For every valid position & normal
  • 51. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Translucency Breakdown ▪ For every valid position & normal ▪ Flip normal and push (ray) inside
  • 52. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Translucency Breakdown ▪ For every valid position & normal ▪ Flip normal and push (ray) inside ▪ Launch rays in uniform sphere dist. ▪ (Importance-sample phase function)
  • 53. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Translucency Breakdown ▪ For every valid position & normal ▪ Flip normal and push (ray) inside ▪ Launch rays in uniform sphere dist. ▪ (Importance-sample phase function) ▪ Compute lighting at intersection
  • 54. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Translucency Breakdown ▪ For every valid position & normal ▪ Flip normal and push (ray) inside ▪ Launch rays in uniform sphere dist. ▪ (Importance-sample phase function) ▪ Compute lighting at intersection ▪ Gather all samples
  • 55. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Translucency Breakdown ▪ For every valid position & normal ▪ Flip normal and push (ray) inside ▪ Launch rays in uniform sphere dist. ▪ (Importance-sample phase function) ▪ Compute lighting at intersection ▪ Gather all samples ▪ Update value in texture
  • 56. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Translucency Filtering ▪ Can denoise spatially and/or temporally ▪ Temporal: build an update heuristic ▪ Reactive enough for moving lights & objects ▪ Exponential moving average can be OK ▪ Variance-adaptive mean estimation ▪ Based on exponential moving average ▪ Adaptive hysteresis
  • 57. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Transparency ▪ Similar approach to translucency ▪ Launch ray using view’s origin and direction ▪ Refract based on medium's index of refraction ▪ Sample a BSDF for rough refraction ▪ Trace a ray in the scene & sample lighting ▪ Tint the result ▪ Chromatic aberration from interface ▪ Beer-Lambert absorption in medium
  • 58. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Transparency ▪ Similar approach to translucency ▪ Launch ray using view’s origin and direction ▪ Refract based on medium's index of refraction ▪ Sample a BSDF for rough refraction ▪ Trace a ray in the scene & sample lighting ▪ Tint the result ▪ Chromatic aberration from interface ▪ Beer-Lambert absorption in medium ▪ Pen: we don’t handle transparent shadows yet
  • 59. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Global Illumination ▪ Important for consistency ▪ Minimize artist overhead ▪ We want a technique with: ▪ No precomputation ▪ No parametrization (UVs, proxies) ▪ Support for static and dynamic scenes ▪ Adaptive refinement
  • 62. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Spatial Storage ▪ Can’t afford to solve every frame ▪ Our GI budget: 250k rays / frame ▪ World space vs screen space ▪ World space is stable ▪ Screen-space fully dynamic ▪ World space surfels ▪ Easy to accumulate ▪ Distribute on the fly ▪ No parameterization ▪ Smooth result by construction ▪ Position, normal, radius, animation info
  • 63. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Surfel Skinning
  • 64. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Surfel Skinning
  • 65. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Surfel Screen Application ▪ Render like deferred light sources ▪ Diffuse only ▪ Smoothstep distance attenuation ▪ Mahalanobis metric ▪ Squared dot of normals angular weight ▪ Inspired by [Lehtinen 2008] ▪ World-space 3D culling ▪ Uniform grid ▪ Each cell holds list of surfels ▪ Find one cell per pixel, use all from list
  • 66. Combine with Screen Space AO [Jimenez 2016]
  • 67. Combine with Screen Space AO [Jimenez 2016]
  • 68. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Surfel Placement Surfel Spawning From Camera @ 1% speed
  • 69. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Surfel Placement Surfel Spawning From Camera @ 1% speed
  • 70. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Surfel Placement Surfel Spawning From Camera @ 1% speed
  • 71. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Surfel Placement Algorithm ▪ Iterative screen-space hole filling
  • 72. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Surfel Placement Algorithm ▪ Iterative screen-space hole filling ▪ Calculate surfel coverage for each pixel
  • 73. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Surfel Placement Algorithm ▪ Iterative screen-space hole filling ▪ Calculate surfel coverage for each pixel
  • 74. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Surfel Placement Algorithm ▪ Iterative screen-space hole filling ▪ Calculate surfel coverage for each pixel
  • 75. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Surfel Placement Algorithm ▪ Iterative screen-space hole filling ▪ Calculate surfel coverage for each pixel ▪ Find lowest coverage in tile (16x16 pixels)
  • 76. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Surfel Placement Algorithm ▪ Iterative screen-space hole filling ▪ Calculate surfel coverage for each pixel ▪ Find lowest coverage in tile (16x16 pixels) ▪ Probabilistically spawn surfel on pixel ▪ Chance proportional to pixel’s projected area ▪ G-Buffer depth and normal ▪ Continue where coverage below threshold
  • 77. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Irradiance Calculation ▪ Path trace from surfels ▪ Unidirectional, explicit light connections ▪ More samples for new surfels Scene geometry Surfel Sky Light source
  • 78. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Irradiance Calculation ▪ Path trace from surfels ▪ Unidirectional, explicit light connections ▪ More samples for new surfels ▪ Limit light path length ▪ Sample previous GI at last bounce ▪ "Infinite" bounces amortized over frames Query surfels at hit point Surfel Light source
  • 79. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Monte Carlo Integration ▪ Monte Carlo assumes immutable integrand ▪ Plain old mean estimation ▪ Can’t use in dynamic GI ▪ Hard reset undesirable Interactive GI in Frostbite [Hillaire 2018] ҧ𝑥0 = 0 ҧ𝑥 𝑛+1 = 𝑙𝑒𝑟𝑝 ҧ𝑥 𝑛, 𝑥 𝑛+1, 1 𝑛 + 1
  • 80. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Adaptive Integration ▪ Give up on fully converging ▪ Exponential moving average ▪ Estimate short-term statistics ▪ Mean, variance ▪ Adapt blend factor 𝑘 ▪ Reduce if variance high ▪ Increase if mean far from short-term statistics ҧ𝑥0 = 0 ҧ𝑥 𝑛+1 = 𝑙𝑒𝑟𝑝 ҧ𝑥 𝑛, 𝑥 𝑛+1, 𝑘
  • 81. Adaptive integration in 1D Exponential moving averageAdaptive mean Short-term distribution bounds
  • 82. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Shadows ▪ Hard shadows trivial ▪ Launch a ray towards light position ▪ Check for any hit ▪ Soft shadows easy ▪ Sample direction from uniform cone [PBRT] ▪ Cone width determines penumbra
  • 83. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Shadows ▪ Hard shadows trivial ▪ Launch a ray towards light position ▪ Check for any hit ▪ Soft shadows easy ▪ Sample direction from uniform cone [PBRT] ▪ Cone width determines penumbra ▪ … Easy but noisy ▪ 1 visibility sample per pixel not enough ▪ Filter instead of shooting more
  • 84. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Shadow Filtering ▪ Based on Nvidia’s SVGF [Schied 2017] ▪ Temporal accumulation ▪ Multi-pass weighted blur ▪ Kernel size driven by variance estimate ▪ No shadow-specific heuristics Accumulate temporally Blur Estimate variance Blur some more (Over)simplified diagram of SVGF Input Output
  • 85. Hard Raytraced Shadows Soft Raytraced Shadows (Unfiltered) Soft Raytraced Shadows (Filtered)
  • 86. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Shadow Filtering ▪ Modified to reduce ghosting ▪ TAA-like color clip ▪ Variance-based bounds (5x5 kernel) [Salvi 2016] Baseline SVGF +TAA-like clip
  • 87. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Summary ▪ Replace fine-tuned hacks with unified approaches ▪ Reconstruction and filtering instead ▪ New tool in the box ▪ Solve sparse and incoherent problems ▪ Not a silver bullet ▪ Use rays wisely ▪ Pica Pica shoots ~2.25 rays per pixel ▪ Real-time visuals with (almost) path traced quality achievable today
  • 88. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Thanks ▪ SEED ▪ Johan Andersson ▪ Colin Barré-Brisebois ▪ Jasper Bekkers ▪ Joakim Bergdahl ▪ Ken Brown ▪ Dean Calver ▪ Dirk de la Hunt ▪ Jenna Frisk ▪ Paul Greveson ▪ Henrik Halen ▪ Effeli Holst ▪ Andrew Lauritzen ▪ Magnus Nordin ▪ Niklas Nummelin ▪ Anastasia Opara ▪ Kristoffer Sjöö ▪ Ida Winterhaven ▪ Graham Wihlidal ▪ Microsoft ▪ Chas Boyd ▪ Ivan Nevraev ▪ Amar Patel ▪ Matt Sandy ▪ NVIDIA ▪ Tomas Akenine-Möller ▪ Nir Benty ▪ Jiho Choi ▪ Peter Harrison ▪ Alex Hyder ▪ Jon Jansen ▪ Aaron Lefohn ▪ Ignacio Llamas ▪ Henry Moreton ▪ Martin Stich
  • 89. S E E D / / S E A R C H F O R E X T R A O R D I N A R Y E X P E R I E N C E S D I V I S I O N S T O C K H O L M – L O S A N G E L E S – M O N T R É A L – R E M O T E W W W . E A . C O M / S E E D W E ‘ R E H I R I N G !
  • 90. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Questions?
  • 91. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 References▪ [Harmer 2018] Jack Harmer, Linus Gisslén, Henrik Holst, Joakim Bergdahl, Tom Olsson, Kristoffer Sjöö and Magnus Nordin“ Imitation Learning with Concurrent Actions in 3D Games”. available online ▪ [Barré-Brisebois 2011] Barré-Brisebois, Colin and Bouchard, Marc. “Approximating Translucency for a Fast, Cheap and Convincing Subsurface Scattering Look”, available online. ▪ [Barré-Brisebois 2017] Barré-Brisebois, Colin. “A Certain Slant of Light: Past, Present and Future Challenges of Global Illumination in Games”, available online. ▪ [Igehy 1999] Igehy, Homan. “Tracing Ray Differentials”, available online. ▪ [PBRT] Pharr, Matt. Jakob, Wenzel and Humphreys, Greg. “Physically Based Rendering”, Book, http://www.pbrt.org/. ▪ [Schied 2017] Schied, Christoph et. Al. “Spatiotemporal Variance-Guided Filtering: Real-Time Reconstruction for Path-Traced Global Illumination”, NVIDIA Research, available online. ▪ [Stachowiak 2015] Stachowiak, Tomasz. “Stochastic Screen-Space Reflections”, available online. ▪ [Weidlich 2007] Weidlich, Andrea and Wilkie, Alexander. “Arbitrarily Layered Micro-Facet Surfaces”, available online. ▪ [Williams 1983] Williams, Lance. “Pyramidal Parametrics”, available online. ▪ [Robison 2009] Austin Robison, Peter Shirley. "Image Space Gathering", available online. ▪ [Heitz 2018] Eric Heitz, Stephen Hill, Morgan McGuire. "Combining Analytic Direct Illumination and Stochastic Shadows", available online. ▪ [Karis 2014] Brian Karis. "High-Quality Temporal Supersampling", available online. ▪ [Lehtinen 2008] Jaakko Lehtinen, Matthias Zwicker, Emmanuel Turquin, Janne Kontkanen, Frédo Durand, François Sillion, Timo Aila. "A Meshless Hierarchical ▪ Representation for Light Transport“, available online. ▪ [Jimenez 2016] Jorge Jimenez, Xian-Chun Wu, Angelo Pesce, Adrian Jarabo. "Practical Realtime Strategies for Accurate Indirect Occlusion", available online. ▪ [Opara 2018] Anastasia Opara. “Creativity of Rules and Patterns”, available online. ▪ [Salvi 2016] Marco Salvi. "An excursion in temporal super sampling", available online. ▪ [Hillaire 2018] Sébastien Hillaire. "Real-time Raytracing for Interactive Global Illumination Workflows in Frostbite", available online.
  • 92. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Bonus
  • 93. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Texture Level-of-Detail What about texture level of detail? ▪ Mipmapping [Williams 1983] is the standard method to avoid texture aliasing: ▪ Screen-space pixel maps to approximately one texel in the mipmap hierarchy ▪ Supported by all GPUs for rasterization via shading quad and derivatives Left: level-of-detail (λ), partial derivatives and the parallelogram-approximated texture-space footprint of a pixel. Right: mipmap chain
  • 94. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Texture Level-of-Detail No shading quads for ray tracing! ▪ Traditionaly: Ray Differentials ▪ Estimates the footprint of a pixel by computing world-space derivatives of the ray with respect to the image plane ▪ Have to differentiate (virtual offset) rays ▪ Heavier payload (12 floats) for subsequent rays (can) affect performance. Optimize! ▪ Alternative: always sample mip 0 with bilinear filtering (with extra samples) ▪ Leads to aliasing and additional performance cost Ray Differentials [Igehy99] Surface P(x + ∂x) D(x + ∂x)P(x) ∂D(x) ∂P(x) D(x) D(x) x y R(x) R(x + ∂x) ∂x
  • 95. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 Texture Level-of-Detail Together with Research, we developed a texture LOD technique for raytracing: ▪ Heuristic based on triangle properties, a curvature estimate, distance, and incident angle ▪ Similar quality to ray differentials with single trilinear lookup ▪ Single value stored in the payload for subsequent rays ▪ Upcoming publication by: ▪ Tomas Akenine-Möller (NV), Magnus Andersson (NV), Colin Barré-Brisebois (EA), Jim Nilsson (NV), Robert Toth (NV) Ground Truth, Ray Differentials, Ours, Mip0
  • 96. S E E D // Stochastic all the things: Raytracing in hybrid real-time rendering Programming and Technology Track, Digital Dragons 2018 mGPU ▪ Explicit Heterogenous Multi-GPU ▪ Parallel Fork-Join Style ▪ Resources copied through system memory using copy queue ▪ Minimize PCI-E transfers ▪ Approach ▪ Run ray generation on primary GPU ▪ Copy results in sub-regions to other GPUs ▪ Run tracing phases on separate GPUs ▪ Copy tracing results back to primary GPU ▪ Run filtering on primary GPU Ray Generation Copy Sub Regions Copy Sub Regions GPU1 GPU2 GPU3 GPU4 Trace GPU 2 Trace GPU 1 Trace GPU 3 Trace GPU 4 Filter