SlideShare a Scribd company logo
1 of 34
Full Rays Ahead!
From Raster to Real-Time Raytracing
Colin Barré-Brisebois - @ZigguratVertigo
SEED – Electronic Arts
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Who Am I?
 Senior Rendering Engineer at SEED - EA
 Cross-discipline pioneering group within Electronic Arts
 Combining creativity with applied research
 Exploring the future of interactive entertainment with the goal to
enable anyone to create their own games and experiences
 Offices in Stockholm, Los Angeles and Montréal
 Previously
 Principal Rendering Engineer / Technical Director at WB Games Montréal
 Rendering Engineer at EA Montréal and DICE
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
PICA PICA
 Exploratory mini-game & world
 For self-learning AI agents to play,
not humans 
 “Imitation Learning with Concurrent
Actions in 3D Games” [Harmer 2018]
 SEED’s Halcyon R&D framework
 60 FPS @ 1080p on a TitanV
 Goals
 Explore hybrid rendering with DXR
 Clean and consistent visuals
 Procedural worlds [Opara 2018]
 No precomputation
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Hybrid Rendering Pipeline
Direct shadows
(raytrace or raster)
Lighting
(compute + raytrace)
Reflections
(raytrace or compute)
Deferred shading
(raster)
Global Illumination
(compute and raytrace)
Post processing
(compute)
Transparency & Translucency
(raytrace and compute)
Ambient occlusion
(raytrace or compute)
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Goals
 Tips-and-Tricks on bringing your engine up with DXR
 Bringing some of the core techniques to production
 Some challenges you might have to face
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
I’m a dev and I want to move to DXR…
What should I do?
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Preface
 Transition to DXR is not automagical
 Some effects are easy to add: hard shadows/reflections, ambient occlusion
 The fun starts when things get blurry & soft 
 Can’t just implement offline raytracing techniques into real-time
 Most of the literature assumes offline – we have work to do here
 Embrace the transition, and filtering! 
 DXR is pretty intuitive!
 Nice evolution from previous raster + compute pipelines
 Easy to get quickly up and improve!
 Having a good DX12 implementation will make your job easier!
Some warm-up might be required…
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Warm-up for DXR
 Brush-up raytracing & DXR work out there!
 This course, NV’s Falcor, MS’ DirectXSamples, our GDC/DD talks 
 Check Matt Pharr’s Adopting Lessons From Offline Ray Tracing to Real-Time Ray Tracing
 Break down passes so you can easily swap & reuse!
 HLSL makes it easy: DXR interops with Rasterization and Compute
 Build shared functions that you will call from both Rasterization and Compute
 Make sure your engine can quickly toggle between techniques
 Will be essential to compare when optimizing, cutting corners, choosing ray counts
 (“Bonus”): Build a reference pathtracer in engine
 Prepare your passes for the transition: swapping inputs & outputs
 Start thinking about how to handle noise (TAA and other filtering)
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
First Thing
 A few techniques should be implemented first (in difficulty order)
 Shadows
 Ambient Occlusion
 Reflections
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Shadows
 Launch a ray towards light
 Ray misses  Not in shadow
 RAY_FLAG_SKIP_CLOSEST_HIT_SHADER
 Handled by Miss Shader
 Shadowed = !payload.miss;
 Soft shadows?
 Random direction from cone [PBRT]
 Cone width drives penumbra
 [1;N] rays & filtering
 We used SVGF [Schied 2017]
 Temporal accumulation
 Multi-pass weighted blur
 Variance-driven kernel size
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
AO
 Random cosine hemi sampling
 Launch from g-buffer normals
 AO = payload.miss ? 1.0 : 0.0
Integral of the visibility function
over the hemisphere Ω for the
point p on a surface with normal
n with respect to the projected
solid angle 𝑛
𝑝
𝐴 𝑝 =
1
𝜋 Ω
𝑉𝑝, 𝑤( 𝑛 ⋅ 𝑤)𝑑𝜔
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Reflections
 Launch rays from G-Buffer
 Trace at half resolution
 ¼ ray/pixel for reflection
 ¼ ray/pixel for reflected shadow
 Reconstruct at full resolution
 Also supports:
 Arbitrary normals
 Spatially-varying roughness
 Extended info:
 GDC 2018 & DD 2018
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Reflection Pipeline
Importance
sampling
Screen-space
reflection
Raytracing
Spatial
reconstruction
Envmap gap fill
Bilateral cleanup
Temporal
accumulation
Raw Raytrace Output Raytracing
Importance
sampling
Spatial Reconstruction Spatial
reconstruction
+Temporal Accumulation Temporal
accumulation
+Bilateral cleanup Bilateral cleanup
+Temporal Anti-Aliasing
Raw Raytrace Output Raytracing
Importance
sampling
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Validate Against Ground Truth!
 Validating against ground truth is key when building RTRT!
 Toggle between hybrid and path-tracer when working on a feature
 Rapidly compare results against ground truth
 Toggle between non-RT techniques and RT
 i.e.: SSR  RT reflections, SSAO  RTAO
 Check performance & check quality (and where you can cut corners)
 PICA PICA: used constantly during production
 Multi-layer material & specular, RTAO vs SSAO, Surfel GI vs path-traced GI
 No additional maintenance required between shared code
 Because of interop!
Pathtracing ~15 seconds accumulation
Real-time Hybrid Raytracing
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Take Advantage of Interop
 DirectX offers easy interoperability between raster, compute and raytracing
 Raytracing, rasterization and compute shaders can share code & types
 Evaluate your actual HLSL material shaders - directly usable for a hybrid raytracing pipeline
 The output from one stage can feed data for another
 i.e.: Write to UAVs, read in next stage
 i.e.: Prepare rays to be launched, and trace on another (i.e.: mGPU)
 i.e.: Can update Shader Table from the GPU
 Interop extends opportunities for solving new sparse problems
 Interleave raster, compute and raytracing
 Use the power of each stage to your advantage
 Interop will become your new best friend as we move towards this transition
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Tips-and-Tricks
 Different payloads for different problems
 Make your rays lean-and-mean
 Pack your payload with get()/set() functions
 Embrace lean recursiveness
 Minimize the data you carry
 Often don’t need infinite recursiveness
 Take advantage of Shader Spaces
 Not mandatory, but can make your life easier
 For frequency updates
 Space 0: default space, object static data
 Space 1: RT space, instance data
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Speaking of Rays…
 Handling coherency is key for RTRT performance
 Coherent  adjacent work performing similar operations & memory access
 Camera rays, texture-space shading
 Incoherent  trash caches, kills performance
 Reflection, shadows, refraction, Monte Carlo
 Use rays sparingly
 Trace only where necessary
 Tune ray count to importance
 Adaptive techniques
 Reconstruct & denoise
 Reuse results from spatial and temporal domains
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
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
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Texture Level-of-Detail
No shading quads for ray tracing!
 Traditionally: 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
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Texture Level-of-Detail
Together with Research, we
developed a texture LOD technique for ray tracing:
 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
 Upcoming publication in Ray Tracing Gems
 Tomas Akenine-Möller (NV), Jim Nilsson (NV), Magnus
Andersson (NV), Colin Barré-Brisebois (EA), Robert Toth
 Barely scratched the surface – still work to do!
 Preprint: https://t.co/opJPBiZ6au
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Open Problems
 Noise vs Ghosting vs Performance
 Managing Coherency & Ray Batches
 Transparency & Procedural Geometry
 Specialized denoising & reconstruction
 Real-Time Global Illumination
 DXR’s Top & Bottom Accel  best for RTRT?
 Managing Animations
 New Hybrid rendering approaches?
 Texture LOD?
Buckle-up, we have work to do… and this is awesome! 
S E E D // Towards effortless photorealism through real-time raytracing
Summary
 Real-time visuals with (almost) path traced quality
 Achievable today on consumer hardware
 RTRT opens the door to an entirely new class of techniques for games
 Solve sparse and incoherent problems
 And now with raytracing hardware, it’s getting really fun! 
 Tomorrow: will talk about PICA PICA performance on NVIDIA Turing
 Still… we’re at the start of the journey
 Plenty of research opportunities
 Looking forward to see how you will take advantage of raytracing for your work!
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
PICA PICA ASSETS
Now available on Sketchfab & SEED’s website. Free use for your R&D & papers!
glTF + FBX + textures. License: CC BY-NC 4.0  https://skfb.ly/6AJCp
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Thanks
 Chris Wyman (NV)
 SEED PICA PICA Team
 Alex Hyder (NV)
 Aaron Lefohn (NV)
 Ignacio Llamas (NV)
 Martin Stich (NV)
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 !
SEED // Full Rays Ahead! From Raster to Real-Time Raytracing
Questions?

More Related Content

What's hot

Past, Present and Future Challenges of Global Illumination in Games
Past, Present and Future Challenges of Global Illumination in GamesPast, Present and Future Challenges of Global Illumination in Games
Past, Present and Future Challenges of Global Illumination in GamesColin Barré-Brisebois
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingElectronic 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 FrostbiteElectronic Arts / DICE
 
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
 
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 FrostbiteElectronic Arts / DICE
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The SurgeMichele Giacalone
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space MarinePope Kim
 
The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2Guerrilla
 
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
 
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 AndromedaElectronic Arts / DICE
 
Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666Tiago Sousa
 
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 RunElectronic Arts / DICE
 
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
 
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...Electronic Arts / DICE
 
Z Buffer Optimizations
Z Buffer OptimizationsZ Buffer Optimizations
Z Buffer Optimizationspjcozzi
 

What's hot (20)

Past, Present and Future Challenges of Global Illumination in Games
Past, Present and Future Challenges of Global Illumination in GamesPast, Present and Future Challenges of Global Illumination in Games
Past, Present and Future Challenges of Global Illumination in Games
 
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
 
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)
 
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
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The Surge
 
Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space Marine
 
Stochastic Screen-Space Reflections
Stochastic Screen-Space ReflectionsStochastic Screen-Space Reflections
Stochastic Screen-Space Reflections
 
The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2
 
Lighting you up in Battlefield 3
Lighting you up in Battlefield 3Lighting you up in Battlefield 3
Lighting you up in Battlefield 3
 
Frostbite on Mobile
Frostbite on MobileFrostbite on Mobile
Frostbite on Mobile
 
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)
 
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
 
Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666
 
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
 
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)
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
 
Z Buffer Optimizations
Z Buffer OptimizationsZ Buffer Optimizations
Z Buffer Optimizations
 

Similar to SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing

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 SEEDElectronic 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 TuringElectronic Arts / DICE
 
Practical spherical harmonics based PRT methods.ppsx
Practical spherical harmonics based PRT methods.ppsxPractical spherical harmonics based PRT methods.ppsx
Practical spherical harmonics based PRT methods.ppsxMannyK4
 
Shadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive ApplicationsShadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive Applicationsstefan_b
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsNaughty Dog
 
Implementing a modern, RenderMan compliant, REYES renderer
Implementing a modern, RenderMan compliant, REYES rendererImplementing a modern, RenderMan compliant, REYES renderer
Implementing a modern, RenderMan compliant, REYES rendererDavide Pasca
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologyTiago Sousa
 
Advanced Lighting for Interactive Applications
Advanced Lighting for Interactive ApplicationsAdvanced Lighting for Interactive Applications
Advanced Lighting for Interactive Applicationsstefan_b
 
Design and implementation of GPU-based SAR image processor
Design and implementation of GPU-based SAR image processorDesign and implementation of GPU-based SAR image processor
Design and implementation of GPU-based SAR image processorNajeeb Ahmad
 
View-Dependent Texture Atlases (EG 2010)
View-Dependent Texture Atlases (EG 2010)View-Dependent Texture Atlases (EG 2010)
View-Dependent Texture Atlases (EG 2010)Matthias Trapp
 
Spar 2011 Aldo Facchin
Spar 2011 Aldo FacchinSpar 2011 Aldo Facchin
Spar 2011 Aldo FacchinAldoFacchin
 
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
 
Noise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet TransformNoise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet TransformIJERA Editor
 
Noise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet TransformNoise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet TransformIJERA Editor
 
Computer Graphics Part1
Computer Graphics Part1Computer Graphics Part1
Computer Graphics Part1qpqpqp
 
D3 D10 Unleashed New Features And Effects
D3 D10 Unleashed   New Features And EffectsD3 D10 Unleashed   New Features And Effects
D3 D10 Unleashed New Features And EffectsThomas Goddard
 
>A Switchable Light Field Camera Architecture with Angle SEnsitive Pixels and...
>A Switchable Light Field Camera Architecture with Angle SEnsitive Pixels and...>A Switchable Light Field Camera Architecture with Angle SEnsitive Pixels and...
>A Switchable Light Field Camera Architecture with Angle SEnsitive Pixels and...Matt Hirsch - MIT Media Lab
 
The Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next StepsThe Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next StepsJohan Andersson
 
[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 WorkflowTakahiro Harada
 

Similar to SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing (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
 
Practical spherical harmonics based PRT methods.ppsx
Practical spherical harmonics based PRT methods.ppsxPractical spherical harmonics based PRT methods.ppsx
Practical spherical harmonics based PRT methods.ppsx
 
Shadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive ApplicationsShadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive Applications
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT Methods
 
Implementing a modern, RenderMan compliant, REYES renderer
Implementing a modern, RenderMan compliant, REYES rendererImplementing a modern, RenderMan compliant, REYES renderer
Implementing a modern, RenderMan compliant, REYES renderer
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics Technology
 
Advanced Lighting for Interactive Applications
Advanced Lighting for Interactive ApplicationsAdvanced Lighting for Interactive Applications
Advanced Lighting for Interactive Applications
 
Design and implementation of GPU-based SAR image processor
Design and implementation of GPU-based SAR image processorDesign and implementation of GPU-based SAR image processor
Design and implementation of GPU-based SAR image processor
 
View-Dependent Texture Atlases (EG 2010)
View-Dependent Texture Atlases (EG 2010)View-Dependent Texture Atlases (EG 2010)
View-Dependent Texture Atlases (EG 2010)
 
Spar 2011 Aldo Facchin
Spar 2011 Aldo FacchinSpar 2011 Aldo Facchin
Spar 2011 Aldo Facchin
 
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 ...
 
Noise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet TransformNoise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet Transform
 
Noise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet TransformNoise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet Transform
 
Computer Graphics Part1
Computer Graphics Part1Computer Graphics Part1
Computer Graphics Part1
 
GPU - how can we use it?
GPU - how can we use it?GPU - how can we use it?
GPU - how can we use it?
 
D3 D10 Unleashed New Features And Effects
D3 D10 Unleashed   New Features And EffectsD3 D10 Unleashed   New Features And Effects
D3 D10 Unleashed New Features And Effects
 
>A Switchable Light Field Camera Architecture with Angle SEnsitive Pixels and...
>A Switchable Light Field Camera Architecture with Angle SEnsitive Pixels and...>A Switchable Light Field Camera Architecture with Angle SEnsitive Pixels and...
>A Switchable Light Field Camera Architecture with Angle SEnsitive Pixels and...
 
The Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next StepsThe Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next Steps
 
[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
 

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 DevelopmentElectronic 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 EdgeElectronic Arts / DICE
 
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 TracingElectronic Arts / DICE
 
Khronos Munich 2018 - Halcyon and Vulkan
Khronos Munich 2018 - Halcyon and VulkanKhronos Munich 2018 - Halcyon and Vulkan
Khronos Munich 2018 - Halcyon and VulkanElectronic 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 ProceduralismElectronic 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 SystemsElectronic Arts / DICE
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsElectronic 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 FrostbiteElectronic Arts / DICE
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteElectronic Arts / DICE
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontElectronic 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
 

More from Electronic Arts / DICE (17)

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
 
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
 
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
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-Graphics
 
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

Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 

Recently uploaded (20)

Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 

SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing

  • 1. Full Rays Ahead! From Raster to Real-Time Raytracing Colin Barré-Brisebois - @ZigguratVertigo SEED – Electronic Arts
  • 2. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Who Am I?  Senior Rendering Engineer at SEED - EA  Cross-discipline pioneering group within Electronic Arts  Combining creativity with applied research  Exploring the future of interactive entertainment with the goal to enable anyone to create their own games and experiences  Offices in Stockholm, Los Angeles and Montréal  Previously  Principal Rendering Engineer / Technical Director at WB Games Montréal  Rendering Engineer at EA Montréal and DICE
  • 3. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing PICA PICA  Exploratory mini-game & world  For self-learning AI agents to play, not humans   “Imitation Learning with Concurrent Actions in 3D Games” [Harmer 2018]  SEED’s Halcyon R&D framework  60 FPS @ 1080p on a TitanV  Goals  Explore hybrid rendering with DXR  Clean and consistent visuals  Procedural worlds [Opara 2018]  No precomputation
  • 4. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Hybrid Rendering Pipeline Direct shadows (raytrace or raster) Lighting (compute + raytrace) Reflections (raytrace or compute) Deferred shading (raster) Global Illumination (compute and raytrace) Post processing (compute) Transparency & Translucency (raytrace and compute) Ambient occlusion (raytrace or compute)
  • 5. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Goals  Tips-and-Tricks on bringing your engine up with DXR  Bringing some of the core techniques to production  Some challenges you might have to face
  • 6. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing I’m a dev and I want to move to DXR… What should I do?
  • 7. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Preface  Transition to DXR is not automagical  Some effects are easy to add: hard shadows/reflections, ambient occlusion  The fun starts when things get blurry & soft   Can’t just implement offline raytracing techniques into real-time  Most of the literature assumes offline – we have work to do here  Embrace the transition, and filtering!   DXR is pretty intuitive!  Nice evolution from previous raster + compute pipelines  Easy to get quickly up and improve!  Having a good DX12 implementation will make your job easier!
  • 8. Some warm-up might be required…
  • 9. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Warm-up for DXR  Brush-up raytracing & DXR work out there!  This course, NV’s Falcor, MS’ DirectXSamples, our GDC/DD talks   Check Matt Pharr’s Adopting Lessons From Offline Ray Tracing to Real-Time Ray Tracing  Break down passes so you can easily swap & reuse!  HLSL makes it easy: DXR interops with Rasterization and Compute  Build shared functions that you will call from both Rasterization and Compute  Make sure your engine can quickly toggle between techniques  Will be essential to compare when optimizing, cutting corners, choosing ray counts  (“Bonus”): Build a reference pathtracer in engine  Prepare your passes for the transition: swapping inputs & outputs  Start thinking about how to handle noise (TAA and other filtering)
  • 10. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing First Thing  A few techniques should be implemented first (in difficulty order)  Shadows  Ambient Occlusion  Reflections
  • 11. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Shadows  Launch a ray towards light  Ray misses  Not in shadow  RAY_FLAG_SKIP_CLOSEST_HIT_SHADER  Handled by Miss Shader  Shadowed = !payload.miss;  Soft shadows?  Random direction from cone [PBRT]  Cone width drives penumbra  [1;N] rays & filtering  We used SVGF [Schied 2017]  Temporal accumulation  Multi-pass weighted blur  Variance-driven kernel size
  • 12. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing AO  Random cosine hemi sampling  Launch from g-buffer normals  AO = payload.miss ? 1.0 : 0.0 Integral of the visibility function over the hemisphere Ω for the point p on a surface with normal n with respect to the projected solid angle 𝑛 𝑝 𝐴 𝑝 = 1 𝜋 Ω 𝑉𝑝, 𝑤( 𝑛 ⋅ 𝑤)𝑑𝜔
  • 13. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Reflections  Launch rays from G-Buffer  Trace at half resolution  ¼ ray/pixel for reflection  ¼ ray/pixel for reflected shadow  Reconstruct at full resolution  Also supports:  Arbitrary normals  Spatially-varying roughness  Extended info:  GDC 2018 & DD 2018
  • 14. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Reflection Pipeline Importance sampling Screen-space reflection Raytracing Spatial reconstruction Envmap gap fill Bilateral cleanup Temporal accumulation
  • 15. Raw Raytrace Output Raytracing Importance sampling
  • 20. Raw Raytrace Output Raytracing Importance sampling
  • 21. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Validate Against Ground Truth!  Validating against ground truth is key when building RTRT!  Toggle between hybrid and path-tracer when working on a feature  Rapidly compare results against ground truth  Toggle between non-RT techniques and RT  i.e.: SSR  RT reflections, SSAO  RTAO  Check performance & check quality (and where you can cut corners)  PICA PICA: used constantly during production  Multi-layer material & specular, RTAO vs SSAO, Surfel GI vs path-traced GI  No additional maintenance required between shared code  Because of interop!
  • 22. Pathtracing ~15 seconds accumulation
  • 24. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Take Advantage of Interop  DirectX offers easy interoperability between raster, compute and raytracing  Raytracing, rasterization and compute shaders can share code & types  Evaluate your actual HLSL material shaders - directly usable for a hybrid raytracing pipeline  The output from one stage can feed data for another  i.e.: Write to UAVs, read in next stage  i.e.: Prepare rays to be launched, and trace on another (i.e.: mGPU)  i.e.: Can update Shader Table from the GPU  Interop extends opportunities for solving new sparse problems  Interleave raster, compute and raytracing  Use the power of each stage to your advantage  Interop will become your new best friend as we move towards this transition
  • 25. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Tips-and-Tricks  Different payloads for different problems  Make your rays lean-and-mean  Pack your payload with get()/set() functions  Embrace lean recursiveness  Minimize the data you carry  Often don’t need infinite recursiveness  Take advantage of Shader Spaces  Not mandatory, but can make your life easier  For frequency updates  Space 0: default space, object static data  Space 1: RT space, instance data
  • 26. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Speaking of Rays…  Handling coherency is key for RTRT performance  Coherent  adjacent work performing similar operations & memory access  Camera rays, texture-space shading  Incoherent  trash caches, kills performance  Reflection, shadows, refraction, Monte Carlo  Use rays sparingly  Trace only where necessary  Tune ray count to importance  Adaptive techniques  Reconstruct & denoise  Reuse results from spatial and temporal domains
  • 27. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing 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
  • 28. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Texture Level-of-Detail No shading quads for ray tracing!  Traditionally: 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
  • 29. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Texture Level-of-Detail Together with Research, we developed a texture LOD technique for ray tracing:  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  Upcoming publication in Ray Tracing Gems  Tomas Akenine-Möller (NV), Jim Nilsson (NV), Magnus Andersson (NV), Colin Barré-Brisebois (EA), Robert Toth  Barely scratched the surface – still work to do!  Preprint: https://t.co/opJPBiZ6au
  • 30. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Open Problems  Noise vs Ghosting vs Performance  Managing Coherency & Ray Batches  Transparency & Procedural Geometry  Specialized denoising & reconstruction  Real-Time Global Illumination  DXR’s Top & Bottom Accel  best for RTRT?  Managing Animations  New Hybrid rendering approaches?  Texture LOD? Buckle-up, we have work to do… and this is awesome! 
  • 31. S E E D // Towards effortless photorealism through real-time raytracing Summary  Real-time visuals with (almost) path traced quality  Achievable today on consumer hardware  RTRT opens the door to an entirely new class of techniques for games  Solve sparse and incoherent problems  And now with raytracing hardware, it’s getting really fun!   Tomorrow: will talk about PICA PICA performance on NVIDIA Turing  Still… we’re at the start of the journey  Plenty of research opportunities  Looking forward to see how you will take advantage of raytracing for your work!
  • 32. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing PICA PICA ASSETS Now available on Sketchfab & SEED’s website. Free use for your R&D & papers! glTF + FBX + textures. License: CC BY-NC 4.0  https://skfb.ly/6AJCp
  • 33. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Thanks  Chris Wyman (NV)  SEED PICA PICA Team  Alex Hyder (NV)  Aaron Lefohn (NV)  Ignacio Llamas (NV)  Martin Stich (NV) 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 !
  • 34. SEED // Full Rays Ahead! From Raster to Real-Time Raytracing Questions?

Editor's Notes

  1. Hi everyone and thanks Chris for having me as part of this course! My goal now is to give you some insights on how us at SEED handled the transition from raster & compute to real-time raytracing using DXR. I only have 20 minutes so will try to give you as much info, but we can definitely chat after if you have any questions whatsoever.
  2. So who is SEED? For those of you who don’t know, we’re a technical and creative research division inside Electronic Arts. We are a cross-disciplinary team with a mission to explore the future of interactive entertainment, with the goal to enable anyone to create their own games and experiences. We have offices in Stockholm, Los Angeles and Montreal. One of our recent projects was an experiment with hybrid real-time rendering, deep learning agents, and procedural level generation. We presented this at this year’s GDC. In case you haven’t see it, let’s check it out!
  3. PICA PICA is a mini-game that we built for AI agents rather than humans. Using reinforcement learning, the agents learn to navigate and interact with the environment. They run around and fix the various machines, so that conveyor belts keep running efficiently. If you are interested in the AI part, do check out our paper in arXiv. The paper talks about how we train the agents, what they see, and how they communicate with game logic. We built the mini-game from the ground up in our in-house Halcyon R&D framework. It is a flexible experimentation framework that is still young, yet already capable of rendering shiny pixels. We’ve had the opportunity to be involved early on with DirectX Raytracing, thanks to our partners NVIDIA and Microsoft, to explore some of the possibilities behind this piece of technology. We decided to create something a bit different and unusual, less AAA than what you usually expect from an EA title. For this demo we wanted cute visuals that would be clean and stylized, yet grounded in physically-based rendering. We wanted to showcase the strengths of raytracing, while also taking into account our small art department of 2 people. We used procedural level generation with an algorithm that drove layout and asset placement. You should check out Anastasia’s various talks on the matter in case you want to know more how the world was procedurally generated. Pica pica runs at 60 fps on a titanV in 1080p
  4. And so to achieve this we built a hybrid of classic rendering techniques with rasterization and compute, with some raytracing on top. We take advantage of the interop between rasterization, compute and raytracing. We have a standard deferred renderer with compute-based lighting, and a pretty standard post-processing stack. We can render shadows via raytracing or cascaded shadow maps. Reflections can be raytraced or screen-space raymarched. Same story for ambient occlusion. Only global illumination and translucency requires raytracing.
  5. With this said, the goal of this presentation is to provide you with some tips and tricks on how to evolve your engine from being raster and compute to supporting raytracing with DXR. I’m hoping to give you some practical insights on bringing some easy-to-do core raytracing techniques to production, but also warn you about some challenges you might face as you go through this awesome transition.
  6. So one question one might have is… well I’m a developer and I want to take advantage of DXR… so what should I do?
  7. One should know that the transition to DXR won’t be automagical. Some effects and techniques are easy to add, such as hard shadows, hard reflections, and ambient occlusion. But once that’s done you’ll see that quickly the fun starts when things get blurry. Actually most raytracing techniques from books assume offline raytracing, so there some work to do there if one wants to adapt some techniques for real-time. This means you need to embrace filtering and adapting techniques to the constraints of real-time. That said, from the previous talks you saw that the API is pretty intuitive, so out of the box that’s neat! It should be easy to get up and running, implement stuff and improve. If your engine already has a good DirectX12 implementation, then your job should be pretty easy. You need to have a good grasp on your resources, and how those get packaged together for the scene that you put together for raytracing and the various new concepts, such as Shader Table and Acceleration Structures.
  8. To get there some stretching and warm-up might be required...
  9. First, brush up on raytracing and DXR. You can do this by using the resources provided by this course, but also the various open source frameworks that are out there, but also our GDC and Digital Dragon talks. Additionally check out yesterday’s presentation from Matt Pharr on adopting lessons from offline ray tracing to real-time ray tracing, from the advances in real-time rendering course. Pretty awesome stuff there about managing variance and noise! Let’s get practical. First you’ll need to break down passes so that code can be swapped and re-used. And so with HLSL it’s easy since D3D interops with raster, raytracing and compute. You should start by building shared functions that you can call from any stage, such as your material evaluation lighting code, various helpers One thing that will really help is making sure your engine can quickly toggle between techniques. This will be essential for comparing, cutting corners, optimizing and choosing ray counts. Preparing your passes for being able to swap inputs and outputs. For example, break your shadows into a full screen shadow mask, so that you can swap CSMs with RT shadows. The same idea applies for screen-space reflections and raytraced reflections.
  10. There are a few techniques you should implement first, that give you the most bang for the buck. In difficulty order that’s shadows, ambient occlusion, then reflections.
  11. First, raytraced shadows are great because they perfectly ground objects in the scene. This is not too complicated to implement. Just launch a ray towards the light, and if the ray misses you’re not in shadow Hard shadows are great… but soft shadows are definitely better to convey scale and more representative of the real world This can be implemented by sampling random directions in a cone towards the light The wider the cone angle, the softer shadows get but the more noise you’ll get, so we have to filter it You can launch more than one ray, but will still require some filtering In our case, we first reproject results TAA-style, and accumulate shadow and variance We then apply an SVGF-like filter. We modified SVGF to make it more responsive for shadows. We coupled it with a color bounding box clamp similar to the one in temporal-antialiasing, with a single scalar value which is cheap to evaluate. We used Marco Salvi’s variance-based bounding box method, with a 5x5 kernel estimating the standard deviation in the new frame. The result is not perfect, but the artifacts aren’t noticeable with full shading.
  12. Another technique that maps and scales well to real-time ray tracing is of course ambient occlusion, which we apply to indirect lighting. Being the integral of the visibility function over the hemisphere, we get more grounded results because all the random directions used during sampling actually end up in the scene, unlike with screen space techniques where rays can go outside the screen, or where the hitpoint is simply not visible. Just like in the literature, this is done by doing cosine hemispherical sampling around the normal. In our case we launch rays using the gbuffer normal, use the miss shader to figure out if we’ve hit something You can launch more than 1 ray per frame, but even with one ray per frame you should get some nice gradients after a few frames. We apply a similar filter as the one for the shadows
  13. Just like for AO, the ability to launch rays from the g-buffer also allows us to trace reflections. We raytrace them at half resolution, so for every four pixels you get one reflection ray. This gives us a quarter of a ray per pixel. Then at the hit point shadows will typically be sampled with another ray. This totals to half a ray per pixel. This works for hard reflections, but we also support arbitrary normal and varying roughness. We do this by applying spatiotemporal reconstruction and filtering Our first approach combined it with SSR for performance, but in the end we just raytraced for simplicity and uniformity. We have presented some extended info on how we do this, so check out our GDC 2018 and Digital Dragons talks
  14. Without going into too many details, which you can get from the talks, here’s a high-level summary of the raytracing pipeline. We start by generating rays via BRDF importance sampling. This gives us rays that follow the properties of our materials. Scene intersection can then be done either by screen-space raymarching or raytracing. As I said in the end we only raytrace but support both. Once intersections have been found, we proceed to reconstruct the reflected image. Our kernel reuses ray hit information across pixels, upsampling the image to full-resolution. It also calculates useful information for a temporal accumulation pass. Finally we run a last-chance noise cleanup in the form of a cross-bilateral filter.
  15. Looking only at the reflections, this is the raw results we get at 1 reflection ray every 4 pixels.
  16. This is after the spatial reconstruction
  17. Followed by temporal accumulation & bilateral to further clean up the image
  18. And finally by a much simpler bilateral filter that removes up some of the remaining noise. It overblurs a bit, but we needed it for some of the rougher reflections. Compared to SSR, ray tracing is trickier because we can’t cheat with a blurred version of the screen for pre-filtered radiance There’s much more noise compared to SSR, so our filters need to be more aggressive too. To prevent it from overblurring, we use a variance estimate from the spatial reconstruction pass and use it to scale down the bilateral kernel size and sample count
  19. With temporal anti-aliasing, we then get a pretty clean image. Considering this comes from one quarter rays per pixel per frame, and works with dynamic camera and object movement, it’s quite awesome what can be done when reusing spatial and temporal
  20. Going back to the raw output, it’s quite a change!
  21. In the case of reflections, and any other technique you want to implement with hybrid rendering, it’s also key to compare against ground truth. Internally we’ve built a path-tracer that acts as our ground truth, which we can toggle when working on a feature. Actually we used this constantly during PICA PICA. Also because of interop there is minimal to almost no maintenance required, so having this ground truth comparison tool shouldn’t add too much work. Image: http://www.cristanwilliams.com/b/2012/01/10/apple-separatism/
  22. This is what it looks like when we toggle the path tracer and wait 15 seconds. The image looks nice but has some noise because of difficult light paths and caustics.
  23. And this is with out hybrid approach on the latest hardware at 60 FPS on a titan V. It’s not quite the same as the path traced version since it’s missing caustics and some small-scale interreflections, but still pretty decent.
  24. If we continue talking about practical things, make sure to take advantage of DirectX’s interop, where you can easily share code, types and results between stages. For example you can evaluate your actual HLSL material shaders from the raytracing stage. Quite convenient. No conversions required. Actually you should be taking advantage of each stage’s strength and use that as you build your hybrid pipeline. Interop allows for solving new sparse problems and with raytracing as a new tool in the bag, interop makes even more sense these days and will become your new best friend.
  25. Here are some additional practical tips and tricks when working with DXR. Since you’ll be launching many rays, and as mentioned by Chris, the importance of minimizing what each ray carries can influence performance. Depending on what kind of rays you’re launching, you can have different kinds of payloads, some leaner than others. Embrace lean recursiveness. Make your performance and IHVs happy by not having infinite recursiveness. You often don’t need it. Finally you can also use shader spaces to organize your data. Makes it useful to keep things organized especially when things get updated at different frequencies.
  26. Speaking of rays, handling coherency is key for real-time raytracing performance You will get some adjacent rays that perform similar operations and memory accesses, and those will perform well, while some might trash cache and affect performance Depending on what techniques you implement, you will have to keep this in mind And so use ray sparingly and trace only when necessary, tuning ray count to importance and adaptively. And set the max recursivity on the shader state object. The is no way right now in HLSL to specify if rays to be launched are expected to be coherent or incoherent. Providing a hint to IHVs could be good. Who knows maybe we’ll be able to do this in the future, as the API keeps evolving. As you saw from our work, reconstruction and denoising allows for great results, so take advantage of spatial and temporal domains. Lots of great work in that field lately.
  27. What about texture LOD?
  28. As many of you are aware, we don’t have shading quads for ray tracing
  29. We’ve barely scratched the surface: Works great for materials where the texture sampling is very clear Need to look at anisotropy & dependent texture lookups in complex shader graphs Technique assumes static Uvs, so need to look at recomputing texture coordinates on the fly? For pica pica we used it but the difference is minimal because of the super clean visuals Even with detail normal on all objects, with a ton of TAA on top sampling mip0 was not noisy Does affect performance, so you don’t want to only sample mip0 A good start though, but still work to do here. Make sure to check out the pre-print
  30. And this was just a glimpse on some of the stuff you may have to tackle, and we haven’t solved everything. Still lots of work to do! There are a bunch of open problems that we’ll have to tackle together in the years to come, and this is awesome! Check out my HPG keynote this year where I go into detail about some of these topics Hopefully some great collaborations between offline raytracing experts and the game industry!
  31. To wrap things up, raytracing makes it possible to replace refined hacks with unified approaches, making it possible to finally phase out some screen space techniques that are artifact-prone. Out of the box, raytracing also enabled higher quality visuals without some of the painful artist time. There is no free lunch though, and considerable efforts need to be put into reconstruction and filtering. And now with raytracing hardware the possibilities are even more awesome! Tomorrow I will give some performance numbers on the new hardware, compared to TitanV. It’s pretty impressive! But don’t forget that raytracing is also just another tool in the box, and should be used wisely where it makes the most sense. I think it’s very encouraging that we can begin to approach the quality of path tracing with just over two rays per pixel. Looking forward to what you come up with and how you can take advantage of hybrid rendering with raster, compute and raytracing
  32. Academia always asks for content from the games people and often doesn’t get it. And so for SIGGRAPH we have decided to release all the assets from PICA PICA You can download them via Sketchfab and on our website, use them in your research for free, build your ray tracing pipeline and compare with ours. Challenge Accepted?