SlideShare a Scribd company logo
The Rendering Pipeline -
Challenges & Next Steps
JOHAN ANDERSSON
ELECTRONIC ARTS
Intro
 What does an advanced game engine real-time rendering
pipeline look like?
 What are some of the key challenges & open problems?
 What are some of the next steps to improve on?
 From both software & hardware perspectives
Previous talks
2010 & 2012 challenges
Photo-realistic rendering at 1W
Long term goal:
Improvements since 2010 & 2012
 Image quality & authoring: massive transition to PBR
 Reflections: SSR and perspective-correct IBLs
 Antialiasing: TAA instead of MSAA
 Gen4 consoles (PS4 & XB1) as new minspec
 Compute shader use prevalent – create your own pipelines!
Improvements since 2010 & 2012 (cont.)
 New explicit control APIs
 Mantle, Metal, DX12, Vulkan
 Well needed change & major step forward
 Not much improvements on compute & shaders
 Programmability
 Conservative raster, min/max texture filter
 "Need a virtual data-parallel ISA" -> SPIR-V!
 "Render target read/modify/write" -> Raster Ordered Views
 Sparse resources
Pipeline of today – key themes
 Non-orthogonality gets in the way – can we get to a more
unified pipeline?
 Complexity is continuing to increase
 Increasing quality in a scalable way
Getting to a more unified pipeline
Transparencies – sorting
 Can’t mix different transparent surfaces & volumes
 Particles, meshes, participating media, raymarching
 Can’t render strict front to back to get correct sorting
 Most particles can be sorted, have to use uber shaders
 Contrains game environments
 Restricts games from using more volumetric
rendering
particles
meshes
volumetric
Transparencies – sorting solution
 Render everything with Order-Independent Transparency (OIT)
 Use Raster Ordered Views (DX12 FL: Haswell & Maxwell)
 Not available on consoles = most games stuck with no OIT
 Scalable to mix all types of transparencies with high quality?
 Transparent meshes (windows, foliage): 1-50x overdraw
 Particles: 10-200x overdraw
 Volume rendering (ray-marched)
 Able to combine with variable resolution rendering?
 Most particles & participating do not need to be shaded at full resolution
Defocus & motion blur - opaque
 Works okay in-game on opaque surfaces
 Render out velocity vectors
 Calc CoC from z
 Apply post-process
 But not correct or ideal
 Leakage
 Disocclusion
Defocus & motion blur - transparencies
 Transparent surfaces are even more problematic
 Esp. motion blur
 Typically simulated with stretched geometry (works mostly for sparks)
 Can only skip or smear everything with standard post-processes
 Fast moving particles should also have internal motion blur
Defocus & motion blur - transparencies
 Blend velocity vectors & CoC for transparencies?
 Feed into the post-process passes
 Post-processes should also be depth-aware - use OIT approx.
transmittance function
 Still not correct, but could prevent the biggest artifacts
 Ideal: directly sample defocus & motion blur in rendering
 But how? Stochastic raster? Raytracing?
 Pre-filtered volumetric representations?
Forward vs deferred
 Most high-end games & engines use deferred shading for opaque geometry
 Better quad utilization
 Separation of material property laydown & lighting shaders
 Would like to render more as transparent, which has to use forward
 Thin geometry: hair & fur
 Proxy geometry (foliage) with alpha-blending for antialiasing
 But forward rendering is much more limiting in compositing
 No SSAO
 No screen-space reflections
 No decal blending of individual channels (e.g. albedo)
 No screen-space sub-surface scattering
Forward vs deferred (cont.)
 Can we extend either forward or deferred to be more orthogonal?
 Use world-space data structures instead of screen-space
 Be able to query & calc AO, reflections, decals while forward shading
 Texture shader to convolve SSS lighting
 Massive forward uber shaders that can do everything
 Render opaque & transparent with deep deferred shading?
 Store all layers of a pixel, including transparents, in a deep gbuffer
 Unbounded memory
 Be able to query neighbors (AO)
 Be able to render into with blending (decals)
Rendering pipeline complexity
Rendering pipeline complexity
 Recent improvements that reduce complexity 
 New APIs are more explicit – less of a black box
 DX11 hardware & compute shaders now minspec
 Hardware trend towards DX12 feature level
Rendering pipeline complexity
 Challenges:
 Sheer amount of rendering systems & passes
 Making architectural choices of what techniques & pipeline to use
 Shader permutations & uber shaders
 Compute shaders still very limiting – no nested dynamic parallelism & pipes
 Mobile: TBDR vs immediate mode
Battlefield 4 rendering passes
Battlefield 4
Battlefield 4 rendering passes
 mainTransDecal
 fgOpaqueEmissive
 subsurfaceScattering
 skyAndFog
 hairCoverage
 mainTransDepth
 linerarizeZ
 mainTransparent
 halfResUpsample
 motionBlurDerive
 motionBlurVelocity
 motionBlurFilter
 filmicEffectsEdge
 spriteDof
 fgTransparent
 lensScope
 filmicEffects
 bloom
 luminanceAvg
 finalPost
 overlay
 fxaa
 smaa
 resample
 screenEffect
 hmdDistortion
 spotlightShadowmaps
 downsampleZ
 linearizeZ
 ssao
 hbaoHalfZ
 hbao
 ssr
 halfResZPass
 halfResTransp
 mainDistort
 lightPassEnd
 mainOpaque
 linearizeZ
 mainOpaqueEmissive
 reflectionCapture
 planarReflections
 dynamicEnvmap
 mainZPass
 mainGBuffer
 mainGBufferSimple
 mainGBufferDecal
 decalVolumes
 mainGBufferFixup
 msaaZDown
 msaaClassify
 lensFlareOcclusionQueries
 lightPassBegin
 cascadedShadowmaps
Architectural decisions
 Selecting which techniques to develop & invest in is a challenge
 Critical to create visual look of a game
 Non-orthogonal choices and tradeoffs
 Difficult to predict the moving future of hardware, games and authoring
 Can be paralyzing with a big advanced engine rendering pipeline
 Exponential scaling with amount of systems & techniques interacting
 Difficult to redesign and move large passes
 Can result in a lot of refactoring & cascading effects to the overall pipeline
 Backwards compatibility with existing content
 Easier if passes & systems can be made more decoupled
What can we do to reduce complexity?
 A more unified pipeline would certainly help!
 Such as with OIT
 Or in the long term: native handling of defocus & motion blur
 Improve GPU performance – simplify rendering systems
 Much of the complexity comes from optimizations for performance
 Could sacrifice a bit of performance for increased orthogonality, but not much
 We have real-time constrain = get the most out of our 16 ms/f (VR: 4 ms/f!)
 Raytrace & raymarch more
 Easier to express complex rendering
 Warning: moves to complexity to data structures and the GPU execution instead
 Not practical overall replacement / unification
 Use as complement – more & more common (SSR, volume rendering, shadows?)
What can we do to reduce complexity?
 Make it easier to drive the graphics & compute
 CPU/GPU communication – C++ on both sides (and more languages)
 Device enqueue & nested data parallelism
 Increase flexibility, expressiveness & modularity of building pipelines
 Build a specialized renderer
 Focus in on very specific rendering techniques & look
 Typically tied to a single game
 E.g. The Tomorrow Children, Dreams
 Build engines, tools & infrastructure to build general renderers
 Handle wide set of environments, content and techniques
 Modular layers to easily have all the passes & techniques interoperate
 Shader authoring is also key
Uber shaders
 Example cases:
 Forward shaders (lights, fog, skinning, etc)
 Particles (to be able to sort without OIT) – want to use individual shaders instead
 Terrain layers [Andersson07] – want to use massive uber shaders
 Why they can be a problem:
 Authoring: Massive shaders with all possible paths in it, no separate shader linker
 Performance: Large GPR pressure affects entire shader
 Performance: Flow control overhead
 Classic approach: break out into separate shader permutations
 Static CPU selection of shader/PSO to use – limited flexibility
 Can end up creating huge amount of permutations = long compile/load times.
 Worse with new APIs! PSO explosion
Uber shaders – potential improvements
 Shader function pointers
 Define individual functions as own kernels
 Select pointers to use per draw call
 Part of ExecuteIndirect params
 Ideal: Select pointers inside shader – not possible today
 Optimization: VS selects pointers PS will use?
 What would the consequences be for the GPU?
 I$ stalls, register allocation, coherency, more?
 More efficient GPU execution of uber shaders?
 Shaders with highly divergent flow & sections with very different GPR usage
 Hardware & execution model that enables resorting & building coherency?
Scalable quality
Real-time rendering have gotten quite far!
 In order to get further, want to:
1. Get that last 5-10% quality in our environments
to reach photorealism
NFS photo reference
Real-time rendering have gotten quite far!
 In order to get further, want to:
1. Get that last 5-10% quality in our environments
to reach photorealism
2. Be able to build & render new environments
that we haven’t been able to before
Glass houses!
Real-time rendering have gotten quite far!
 In order to get further, want to:
1. Get that last 5-10% quality in our environments
to reach photorealism
2. Be able to build & render new environments
that we haven’t been able to before
Dreams (MediaMolecule)
Difficult areas
 Hair & fur
 OIT, overdraw, LOD, quad overshading, deep shadows
 Foliage
 OIT, overdraw, LOD, geometry throughput,
 Lighting, translucency, AO
 Fluids
 LOD & scalability, simulation, overall rendering
 VFX
 Need volumetric representation & lighting
 Related to [Hillaire15]
Difficult areas
 Hair & fur
 OIT, overdraw, LOD, quad overshading, deep shadows
 Foliage
 OIT, overdraw, LOD, geometry throughput,
 Lighting, translucency, AO
 Fluids
 LOD & scalability, simulation, overall rendering
 VFX
 Need volumetric representation & lighting
 Related to [Hillaire15]
Difficult areas
 Hair & fur
 OIT, overdraw, LOD, quad overshading, deep shadows
 Foliage
 OIT, overdraw, LOD, geometry throughput,
 Lighting, translucency, AO
 Fluids
 LOD & scalability, simulation, overall rendering
 VFX
 Need volumetric representation & lighting
 Related to [Hillaire15]
Difficult areas
 Hair & fur
 OIT, overdraw, LOD, quad overshading, deep shadows
 Foliage
 OIT, overdraw, LOD, geometry throughput,
 Lighting, translucency, AO
 Fluids
 LOD & scalability, simulation, overall rendering
 VFX
 Need volumetric representation & lighting
 Related to [Hillaire15]
Pompeii movie
Difficult areas (cont.)
 Correct shadows on everything
 Including area lights & shadows!
 Extra important with PBR to prevent leakage
 Geometry throughput, CPU overhead, filtering, LOD
 Reflections
 Hodgepodge of techniques today
 Occlusion of specular critical
 See Mirror’s Edge talk [Johansson15]
 Antialiasing
 See [Salvi15] next
Mirror’s Edge: Catalyst concept
Quality challenges
 Getting the last 5-10% quality can be very expensive
 While covering a relatively small portion of the screen
 Example: hair & fur rendering
 Improving GPUs in some of these areas may not benefit “ordinary”
rendering
 How to build truly scalable solutions
 Example: Rendering, lighting and shadowing a full forest
 Level-of-detail is a key challenge for most techniques to make them
practical
Scalable solutions – screen-space
 Sub-surface scattering went from texture- to screen-space
 Orders of magnitude faster
 Implicitly scalable + no per-object tracking
 Not perfect, but made it practical & mainstream
 Volumetric rendering to view frustum 3d texture
 Froxels! See [Wronski14] and [Hillaire15]
Scalable solutions – screen-space
 Can one extend screen-space techniques further?
 Render multiple depth layers to solve occlusion
 Multi-layer deep gbuffers [Mara14]
 Render cubemap to reach outside of frustum
 Render lower resolution separate cubemap, slow
 Render main view as cubemap with variable resolution?
 Single geometry pass
 Also for fovated rendering
Scalable solutions – pre-compute
 Traditionally a strong cut off between pre-computed & runtime solutions
 Believe this is going away more – techniques and systems have to scale &
cover more of the spectrum:
 Offline pre-compute: Highest-quality
 Load-time pre-compute: High-quality
 Background compute: Medium-quality
 Runtime
 Want flexible tradeoffs depending on contexts
 Artist live editing lighting
 Gamer customizing in-game content
 Background gameplay changes to the game environment
Scalable solutions – hierarchical geometry
 Want to avoid wasteful brute force geometry rendering
 Do your own culling, occlusion & LOD directly on the GPU
 Finer granularity than CPU code
 Engine can have more context and own spatial data structures
 Combined with GPU information (for example HiZ)
 Opportunities to extend the GPU pipeline?
 Compute as frontend for graphics pipeline to accelerate
 Avoid writing geometry out to memory
 Good fit with procedural geometry systems as well
Takeaways
 We’ve gotten very far in the last few years!
 Big transitions: PBR, Gen4, Compute, explicit APIs
 We are at the cusp of a beautiful future!
 Build your own rendering pipelines & data structures
 But which ones? All of them! 
 Need reduce coupling & further evolve GPU execution models
Thanks to everyone who provided feedback!
 Sébastien Hillaire (@sebhillaire)
 Christina Coffin (@christinacoffin)
 John White (@zedcull)
 Aaron Lefohn (@aaronlefohn)
 Colin Barré-Brisebois (@zigguratvertigo)
 Sébastién Lagarde (@seblagarde)
 Tomasz Stachowiak (@h3r2tic)
 Andrew Lauritzen (@andrewlauritzen)
 Jasper Bekkers (@jasperbekkers)
 Yuiry O’Donnell (@yuriyodonnell)
 Kenneth Brown
 Natasha Tatarchuk (@mirror2mask)
 Angelo Pesce (@kenpex)
 David Reinig (@d13_dreinig)
 Promit Roy (@promit_roy)
 Rich Forster (@dickyjimforster)
 Niklas Nummelin (@niklasnummelin)
 Tobias Berghoff (@tobiasberghoff)
 Morgan McGuire (@casualeffects)
 Tom Forsyth (@tom_forsyth)
 Eric Smolikowski (@esmolikowski)
 Nathan Reed (@reedbeta)
 Christer Ericson (@christerericson)
 Daniel Collin (@daniel_collin)
 Matias Goldberg (@matiasgoldberg)
 Arne Schober (@khipu_kamayuq)
 Dan Olson (@olson_dan)
 Joshua Barczak (@joshuabarczak)
 Bart Wronski (@bartwronsk)
 Krzysztof Narkowicz (@knarkowicz)
 Julien Guertault (@zavie)
 Sander van Rossen (@logicalerror)
 Lucas Hardi (@lhardi)
 Tim Foley (@tangentvector)
Questions?
Email: johan@ea.com
Web: http://frostbite.com
Twitter: @repi
References
 [Andersson07] Terrain rendering in Frostbite using Procedural Shader Splatting
 [Hillaire15] Physically Based and Unified Volumetric Rendering in Frostbite
 [Wronski14] Volumetric fog: Unified, compute shader based solution to
atmospheric scattering
 [Salvi15] Anti-Aliasing: Are We There Yet?
 [Mara14] Fast Global Illumination Approximations on Deep G-Buffer
 [Johansson15] Leap of Faith: The World of Mirror’s Edge Catalyst

More Related Content

What's hot

Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016
Graham Wihlidal
 
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
 
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
 
Parallel Futures of a Game Engine
Parallel Futures of a Game EngineParallel Futures of a Game Engine
Parallel Futures of a Game Engine
Johan Andersson
 
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
 
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
 
Lighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow FallLighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow Fall
Guerrilla
 
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Johan Andersson
 
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
 
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
 
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
 
Stochastic Screen-Space Reflections
Stochastic Screen-Space ReflectionsStochastic Screen-Space Reflections
Stochastic Screen-Space Reflections
Electronic Arts / DICE
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
Electronic Arts / DICE
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics Technology
Tiago Sousa
 
Rendering Battlefield 4 with Mantle
Rendering Battlefield 4 with MantleRendering Battlefield 4 with Mantle
Rendering Battlefield 4 with Mantle
Electronic Arts / DICE
 
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
Electronic 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
 
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
Tiago Sousa
 
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingDD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
Electronic Arts / DICE
 
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
AMD Developer Central
 

What's hot (20)

Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016
 
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)
 
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
 
Parallel Futures of a Game Engine
Parallel Futures of a Game EngineParallel Futures of a Game Engine
Parallel Futures of a Game Engine
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
 
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
 
Lighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow FallLighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow Fall
 
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
 
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
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
 
Stochastic Screen-Space Reflections
Stochastic Screen-Space ReflectionsStochastic Screen-Space Reflections
Stochastic Screen-Space Reflections
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics Technology
 
Rendering Battlefield 4 with Mantle
Rendering Battlefield 4 with MantleRendering Battlefield 4 with Mantle
Rendering Battlefield 4 with Mantle
 
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
 
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)
 
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
 
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingDD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
 
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
 

Viewers also liked

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
 
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
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars Battlefront
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
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)
Johan Andersson
 
Battlefield 4 + Frostbite + Mantle
Battlefield 4 + Frostbite + MantleBattlefield 4 + Frostbite + Mantle
Battlefield 4 + Frostbite + Mantle
Electronic Arts / DICE
 
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
 
Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09)
 	 Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09) 	 Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09)
Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09)
Johan Andersson
 
A Real-time Radiosity Architecture
A Real-time Radiosity ArchitectureA Real-time Radiosity Architecture
A Real-time Radiosity Architecture
Electronic Arts / DICE
 
Bending the Graphics Pipeline
Bending the Graphics PipelineBending the Graphics Pipeline
Bending the Graphics Pipeline
Electronic Arts / DICE
 
Destruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance FieldsDestruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance Fields
Electronic Arts / DICE
 
Mantle for Developers
Mantle for DevelopersMantle for Developers
Mantle for Developers
Electronic Arts / DICE
 
Stable SSAO in Battlefield 3 with Selective Temporal Filtering
Stable SSAO in Battlefield 3 with Selective Temporal FilteringStable SSAO in Battlefield 3 with Selective Temporal Filtering
Stable SSAO in Battlefield 3 with Selective Temporal Filtering
Electronic Arts / DICE
 
Audio for Multiplayer & Beyond - Mixing Case Studies From Battlefield: Bad Co...
Audio for Multiplayer & Beyond - Mixing Case Studies From Battlefield: Bad Co...Audio for Multiplayer & Beyond - Mixing Case Studies From Battlefield: Bad Co...
Audio for Multiplayer & Beyond - Mixing Case Studies From Battlefield: Bad Co...
Electronic Arts / DICE
 
Scope Stack Allocation
Scope Stack AllocationScope Stack Allocation
Scope Stack Allocation
Electronic Arts / DICE
 

Viewers also liked (15)

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
 
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
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars Battlefront
 
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)
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)
 
Battlefield 4 + Frostbite + Mantle
Battlefield 4 + Frostbite + MantleBattlefield 4 + Frostbite + Mantle
Battlefield 4 + Frostbite + Mantle
 
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 ...
 
Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09)
 	 Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09) 	 Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09)
Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09)
 
A Real-time Radiosity Architecture
A Real-time Radiosity ArchitectureA Real-time Radiosity Architecture
A Real-time Radiosity Architecture
 
Bending the Graphics Pipeline
Bending the Graphics PipelineBending the Graphics Pipeline
Bending the Graphics Pipeline
 
Destruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance FieldsDestruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance Fields
 
Mantle for Developers
Mantle for DevelopersMantle for Developers
Mantle for Developers
 
Stable SSAO in Battlefield 3 with Selective Temporal Filtering
Stable SSAO in Battlefield 3 with Selective Temporal FilteringStable SSAO in Battlefield 3 with Selective Temporal Filtering
Stable SSAO in Battlefield 3 with Selective Temporal Filtering
 
Audio for Multiplayer & Beyond - Mixing Case Studies From Battlefield: Bad Co...
Audio for Multiplayer & Beyond - Mixing Case Studies From Battlefield: Bad Co...Audio for Multiplayer & Beyond - Mixing Case Studies From Battlefield: Bad Co...
Audio for Multiplayer & Beyond - Mixing Case Studies From Battlefield: Bad Co...
 
Scope Stack Allocation
Scope Stack AllocationScope Stack Allocation
Scope Stack Allocation
 

Similar to The Rendering Pipeline - Challenges & Next Steps

Sig13 ce future_gfx
Sig13 ce future_gfxSig13 ce future_gfx
Sig13 ce future_gfx
Cass Everitt
 
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
AMD Developer Central
 
Gpu presentation
Gpu presentationGpu presentation
Gpu presentation
spartasoft
 
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
 
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open ProblemsHPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
Electronic Arts / DICE
 
Uncharted3 effect technique
Uncharted3 effect techniqueUncharted3 effect technique
Uncharted3 effect techniqueMinGeun Park
 
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
GFX Part 1 - Introduction to GPU HW and OpenGL ES specificationsGFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
Prabindh Sundareson
 
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
Persistent Systems Ltd.
 
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...
Unity Technologies
 
Hardware Shaders
Hardware ShadersHardware Shaders
Hardware Shadersgueste52f1b
 
NVIDIA Graphics, Cg, and Transparency
NVIDIA Graphics, Cg, and TransparencyNVIDIA Graphics, Cg, and Transparency
NVIDIA Graphics, Cg, and Transparency
Mark Kilgard
 
FGS 2011: Making A Game With Molehill: Zombie Tycoon
FGS 2011: Making A Game With Molehill: Zombie TycoonFGS 2011: Making A Game With Molehill: Zombie Tycoon
FGS 2011: Making A Game With Molehill: Zombie Tycoon
mochimedia
 
Crysis 2-key-rendering-features
Crysis 2-key-rendering-featuresCrysis 2-key-rendering-features
Crysis 2-key-rendering-features
Raimundo Renato
 
EXTENT-2017: Heterogeneous Computing Trends and Business Value Creation
EXTENT-2017: Heterogeneous Computing Trends and Business Value CreationEXTENT-2017: Heterogeneous Computing Trends and Business Value Creation
EXTENT-2017: Heterogeneous Computing Trends and Business Value Creation
Iosif Itkin
 
CS 354 Programmable Shading
CS 354 Programmable ShadingCS 354 Programmable Shading
CS 354 Programmable Shading
Mark Kilgard
 
Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)
Intel® Software
 
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiMaking High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
Luis Cataldi
 
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiMaking High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
Unreal Engine
 
Tutorial on Point Cloud Compression and standardisation
Tutorial on Point Cloud Compression and standardisationTutorial on Point Cloud Compression and standardisation
Tutorial on Point Cloud Compression and standardisation
Rufael Mekuria
 
Introduction to the Graphics Pipeline of the PS3
Introduction to the Graphics Pipeline of the PS3Introduction to the Graphics Pipeline of the PS3
Introduction to the Graphics Pipeline of the PS3
Slide_N
 

Similar to The Rendering Pipeline - Challenges & Next Steps (20)

Sig13 ce future_gfx
Sig13 ce future_gfxSig13 ce future_gfx
Sig13 ce future_gfx
 
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
 
Gpu presentation
Gpu presentationGpu presentation
Gpu presentation
 
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
 
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open ProblemsHPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
 
Uncharted3 effect technique
Uncharted3 effect techniqueUncharted3 effect technique
Uncharted3 effect technique
 
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
GFX Part 1 - Introduction to GPU HW and OpenGL ES specificationsGFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
 
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
 
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...
 
Hardware Shaders
Hardware ShadersHardware Shaders
Hardware Shaders
 
NVIDIA Graphics, Cg, and Transparency
NVIDIA Graphics, Cg, and TransparencyNVIDIA Graphics, Cg, and Transparency
NVIDIA Graphics, Cg, and Transparency
 
FGS 2011: Making A Game With Molehill: Zombie Tycoon
FGS 2011: Making A Game With Molehill: Zombie TycoonFGS 2011: Making A Game With Molehill: Zombie Tycoon
FGS 2011: Making A Game With Molehill: Zombie Tycoon
 
Crysis 2-key-rendering-features
Crysis 2-key-rendering-featuresCrysis 2-key-rendering-features
Crysis 2-key-rendering-features
 
EXTENT-2017: Heterogeneous Computing Trends and Business Value Creation
EXTENT-2017: Heterogeneous Computing Trends and Business Value CreationEXTENT-2017: Heterogeneous Computing Trends and Business Value Creation
EXTENT-2017: Heterogeneous Computing Trends and Business Value Creation
 
CS 354 Programmable Shading
CS 354 Programmable ShadingCS 354 Programmable Shading
CS 354 Programmable Shading
 
Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)
 
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiMaking High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
 
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiMaking High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
 
Tutorial on Point Cloud Compression and standardisation
Tutorial on Point Cloud Compression and standardisationTutorial on Point Cloud Compression and standardisation
Tutorial on Point Cloud Compression and standardisation
 
Introduction to the Graphics Pipeline of the PS3
Introduction to the Graphics Pipeline of the PS3Introduction to the Graphics Pipeline of the PS3
Introduction to the Graphics Pipeline of the PS3
 

Recently uploaded

Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
ayushiqss
 

Recently uploaded (20)

Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
 

The Rendering Pipeline - Challenges & Next Steps

  • 1. The Rendering Pipeline - Challenges & Next Steps JOHAN ANDERSSON ELECTRONIC ARTS
  • 2. Intro  What does an advanced game engine real-time rendering pipeline look like?  What are some of the key challenges & open problems?  What are some of the next steps to improve on?  From both software & hardware perspectives
  • 4. 2010 & 2012 challenges
  • 5. Photo-realistic rendering at 1W Long term goal:
  • 6. Improvements since 2010 & 2012  Image quality & authoring: massive transition to PBR  Reflections: SSR and perspective-correct IBLs  Antialiasing: TAA instead of MSAA  Gen4 consoles (PS4 & XB1) as new minspec  Compute shader use prevalent – create your own pipelines!
  • 7. Improvements since 2010 & 2012 (cont.)  New explicit control APIs  Mantle, Metal, DX12, Vulkan  Well needed change & major step forward  Not much improvements on compute & shaders  Programmability  Conservative raster, min/max texture filter  "Need a virtual data-parallel ISA" -> SPIR-V!  "Render target read/modify/write" -> Raster Ordered Views  Sparse resources
  • 8. Pipeline of today – key themes  Non-orthogonality gets in the way – can we get to a more unified pipeline?  Complexity is continuing to increase  Increasing quality in a scalable way
  • 9. Getting to a more unified pipeline
  • 10. Transparencies – sorting  Can’t mix different transparent surfaces & volumes  Particles, meshes, participating media, raymarching  Can’t render strict front to back to get correct sorting  Most particles can be sorted, have to use uber shaders  Contrains game environments  Restricts games from using more volumetric rendering particles meshes volumetric
  • 11. Transparencies – sorting solution  Render everything with Order-Independent Transparency (OIT)  Use Raster Ordered Views (DX12 FL: Haswell & Maxwell)  Not available on consoles = most games stuck with no OIT  Scalable to mix all types of transparencies with high quality?  Transparent meshes (windows, foliage): 1-50x overdraw  Particles: 10-200x overdraw  Volume rendering (ray-marched)  Able to combine with variable resolution rendering?  Most particles & participating do not need to be shaded at full resolution
  • 12. Defocus & motion blur - opaque  Works okay in-game on opaque surfaces  Render out velocity vectors  Calc CoC from z  Apply post-process  But not correct or ideal  Leakage  Disocclusion
  • 13. Defocus & motion blur - transparencies  Transparent surfaces are even more problematic  Esp. motion blur  Typically simulated with stretched geometry (works mostly for sparks)  Can only skip or smear everything with standard post-processes  Fast moving particles should also have internal motion blur
  • 14. Defocus & motion blur - transparencies  Blend velocity vectors & CoC for transparencies?  Feed into the post-process passes  Post-processes should also be depth-aware - use OIT approx. transmittance function  Still not correct, but could prevent the biggest artifacts  Ideal: directly sample defocus & motion blur in rendering  But how? Stochastic raster? Raytracing?  Pre-filtered volumetric representations?
  • 15. Forward vs deferred  Most high-end games & engines use deferred shading for opaque geometry  Better quad utilization  Separation of material property laydown & lighting shaders  Would like to render more as transparent, which has to use forward  Thin geometry: hair & fur  Proxy geometry (foliage) with alpha-blending for antialiasing  But forward rendering is much more limiting in compositing  No SSAO  No screen-space reflections  No decal blending of individual channels (e.g. albedo)  No screen-space sub-surface scattering
  • 16. Forward vs deferred (cont.)  Can we extend either forward or deferred to be more orthogonal?  Use world-space data structures instead of screen-space  Be able to query & calc AO, reflections, decals while forward shading  Texture shader to convolve SSS lighting  Massive forward uber shaders that can do everything  Render opaque & transparent with deep deferred shading?  Store all layers of a pixel, including transparents, in a deep gbuffer  Unbounded memory  Be able to query neighbors (AO)  Be able to render into with blending (decals)
  • 18. Rendering pipeline complexity  Recent improvements that reduce complexity   New APIs are more explicit – less of a black box  DX11 hardware & compute shaders now minspec  Hardware trend towards DX12 feature level
  • 19. Rendering pipeline complexity  Challenges:  Sheer amount of rendering systems & passes  Making architectural choices of what techniques & pipeline to use  Shader permutations & uber shaders  Compute shaders still very limiting – no nested dynamic parallelism & pipes  Mobile: TBDR vs immediate mode
  • 20. Battlefield 4 rendering passes Battlefield 4
  • 21. Battlefield 4 rendering passes  mainTransDecal  fgOpaqueEmissive  subsurfaceScattering  skyAndFog  hairCoverage  mainTransDepth  linerarizeZ  mainTransparent  halfResUpsample  motionBlurDerive  motionBlurVelocity  motionBlurFilter  filmicEffectsEdge  spriteDof  fgTransparent  lensScope  filmicEffects  bloom  luminanceAvg  finalPost  overlay  fxaa  smaa  resample  screenEffect  hmdDistortion  spotlightShadowmaps  downsampleZ  linearizeZ  ssao  hbaoHalfZ  hbao  ssr  halfResZPass  halfResTransp  mainDistort  lightPassEnd  mainOpaque  linearizeZ  mainOpaqueEmissive  reflectionCapture  planarReflections  dynamicEnvmap  mainZPass  mainGBuffer  mainGBufferSimple  mainGBufferDecal  decalVolumes  mainGBufferFixup  msaaZDown  msaaClassify  lensFlareOcclusionQueries  lightPassBegin  cascadedShadowmaps
  • 22. Architectural decisions  Selecting which techniques to develop & invest in is a challenge  Critical to create visual look of a game  Non-orthogonal choices and tradeoffs  Difficult to predict the moving future of hardware, games and authoring  Can be paralyzing with a big advanced engine rendering pipeline  Exponential scaling with amount of systems & techniques interacting  Difficult to redesign and move large passes  Can result in a lot of refactoring & cascading effects to the overall pipeline  Backwards compatibility with existing content  Easier if passes & systems can be made more decoupled
  • 23. What can we do to reduce complexity?  A more unified pipeline would certainly help!  Such as with OIT  Or in the long term: native handling of defocus & motion blur  Improve GPU performance – simplify rendering systems  Much of the complexity comes from optimizations for performance  Could sacrifice a bit of performance for increased orthogonality, but not much  We have real-time constrain = get the most out of our 16 ms/f (VR: 4 ms/f!)  Raytrace & raymarch more  Easier to express complex rendering  Warning: moves to complexity to data structures and the GPU execution instead  Not practical overall replacement / unification  Use as complement – more & more common (SSR, volume rendering, shadows?)
  • 24. What can we do to reduce complexity?  Make it easier to drive the graphics & compute  CPU/GPU communication – C++ on both sides (and more languages)  Device enqueue & nested data parallelism  Increase flexibility, expressiveness & modularity of building pipelines  Build a specialized renderer  Focus in on very specific rendering techniques & look  Typically tied to a single game  E.g. The Tomorrow Children, Dreams  Build engines, tools & infrastructure to build general renderers  Handle wide set of environments, content and techniques  Modular layers to easily have all the passes & techniques interoperate  Shader authoring is also key
  • 25. Uber shaders  Example cases:  Forward shaders (lights, fog, skinning, etc)  Particles (to be able to sort without OIT) – want to use individual shaders instead  Terrain layers [Andersson07] – want to use massive uber shaders  Why they can be a problem:  Authoring: Massive shaders with all possible paths in it, no separate shader linker  Performance: Large GPR pressure affects entire shader  Performance: Flow control overhead  Classic approach: break out into separate shader permutations  Static CPU selection of shader/PSO to use – limited flexibility  Can end up creating huge amount of permutations = long compile/load times.  Worse with new APIs! PSO explosion
  • 26. Uber shaders – potential improvements  Shader function pointers  Define individual functions as own kernels  Select pointers to use per draw call  Part of ExecuteIndirect params  Ideal: Select pointers inside shader – not possible today  Optimization: VS selects pointers PS will use?  What would the consequences be for the GPU?  I$ stalls, register allocation, coherency, more?  More efficient GPU execution of uber shaders?  Shaders with highly divergent flow & sections with very different GPR usage  Hardware & execution model that enables resorting & building coherency?
  • 28.
  • 29. Real-time rendering have gotten quite far!  In order to get further, want to: 1. Get that last 5-10% quality in our environments to reach photorealism NFS photo reference
  • 30. Real-time rendering have gotten quite far!  In order to get further, want to: 1. Get that last 5-10% quality in our environments to reach photorealism 2. Be able to build & render new environments that we haven’t been able to before Glass houses!
  • 31. Real-time rendering have gotten quite far!  In order to get further, want to: 1. Get that last 5-10% quality in our environments to reach photorealism 2. Be able to build & render new environments that we haven’t been able to before Dreams (MediaMolecule)
  • 32. Difficult areas  Hair & fur  OIT, overdraw, LOD, quad overshading, deep shadows  Foliage  OIT, overdraw, LOD, geometry throughput,  Lighting, translucency, AO  Fluids  LOD & scalability, simulation, overall rendering  VFX  Need volumetric representation & lighting  Related to [Hillaire15]
  • 33. Difficult areas  Hair & fur  OIT, overdraw, LOD, quad overshading, deep shadows  Foliage  OIT, overdraw, LOD, geometry throughput,  Lighting, translucency, AO  Fluids  LOD & scalability, simulation, overall rendering  VFX  Need volumetric representation & lighting  Related to [Hillaire15]
  • 34. Difficult areas  Hair & fur  OIT, overdraw, LOD, quad overshading, deep shadows  Foliage  OIT, overdraw, LOD, geometry throughput,  Lighting, translucency, AO  Fluids  LOD & scalability, simulation, overall rendering  VFX  Need volumetric representation & lighting  Related to [Hillaire15]
  • 35. Difficult areas  Hair & fur  OIT, overdraw, LOD, quad overshading, deep shadows  Foliage  OIT, overdraw, LOD, geometry throughput,  Lighting, translucency, AO  Fluids  LOD & scalability, simulation, overall rendering  VFX  Need volumetric representation & lighting  Related to [Hillaire15] Pompeii movie
  • 36. Difficult areas (cont.)  Correct shadows on everything  Including area lights & shadows!  Extra important with PBR to prevent leakage  Geometry throughput, CPU overhead, filtering, LOD  Reflections  Hodgepodge of techniques today  Occlusion of specular critical  See Mirror’s Edge talk [Johansson15]  Antialiasing  See [Salvi15] next Mirror’s Edge: Catalyst concept
  • 37. Quality challenges  Getting the last 5-10% quality can be very expensive  While covering a relatively small portion of the screen  Example: hair & fur rendering  Improving GPUs in some of these areas may not benefit “ordinary” rendering  How to build truly scalable solutions  Example: Rendering, lighting and shadowing a full forest  Level-of-detail is a key challenge for most techniques to make them practical
  • 38. Scalable solutions – screen-space  Sub-surface scattering went from texture- to screen-space  Orders of magnitude faster  Implicitly scalable + no per-object tracking  Not perfect, but made it practical & mainstream  Volumetric rendering to view frustum 3d texture  Froxels! See [Wronski14] and [Hillaire15]
  • 39. Scalable solutions – screen-space  Can one extend screen-space techniques further?  Render multiple depth layers to solve occlusion  Multi-layer deep gbuffers [Mara14]  Render cubemap to reach outside of frustum  Render lower resolution separate cubemap, slow  Render main view as cubemap with variable resolution?  Single geometry pass  Also for fovated rendering
  • 40. Scalable solutions – pre-compute  Traditionally a strong cut off between pre-computed & runtime solutions  Believe this is going away more – techniques and systems have to scale & cover more of the spectrum:  Offline pre-compute: Highest-quality  Load-time pre-compute: High-quality  Background compute: Medium-quality  Runtime  Want flexible tradeoffs depending on contexts  Artist live editing lighting  Gamer customizing in-game content  Background gameplay changes to the game environment
  • 41. Scalable solutions – hierarchical geometry  Want to avoid wasteful brute force geometry rendering  Do your own culling, occlusion & LOD directly on the GPU  Finer granularity than CPU code  Engine can have more context and own spatial data structures  Combined with GPU information (for example HiZ)  Opportunities to extend the GPU pipeline?  Compute as frontend for graphics pipeline to accelerate  Avoid writing geometry out to memory  Good fit with procedural geometry systems as well
  • 42. Takeaways  We’ve gotten very far in the last few years!  Big transitions: PBR, Gen4, Compute, explicit APIs  We are at the cusp of a beautiful future!  Build your own rendering pipelines & data structures  But which ones? All of them!   Need reduce coupling & further evolve GPU execution models
  • 43. Thanks to everyone who provided feedback!  Sébastien Hillaire (@sebhillaire)  Christina Coffin (@christinacoffin)  John White (@zedcull)  Aaron Lefohn (@aaronlefohn)  Colin Barré-Brisebois (@zigguratvertigo)  Sébastién Lagarde (@seblagarde)  Tomasz Stachowiak (@h3r2tic)  Andrew Lauritzen (@andrewlauritzen)  Jasper Bekkers (@jasperbekkers)  Yuiry O’Donnell (@yuriyodonnell)  Kenneth Brown  Natasha Tatarchuk (@mirror2mask)  Angelo Pesce (@kenpex)  David Reinig (@d13_dreinig)  Promit Roy (@promit_roy)  Rich Forster (@dickyjimforster)  Niklas Nummelin (@niklasnummelin)  Tobias Berghoff (@tobiasberghoff)  Morgan McGuire (@casualeffects)  Tom Forsyth (@tom_forsyth)  Eric Smolikowski (@esmolikowski)  Nathan Reed (@reedbeta)  Christer Ericson (@christerericson)  Daniel Collin (@daniel_collin)  Matias Goldberg (@matiasgoldberg)  Arne Schober (@khipu_kamayuq)  Dan Olson (@olson_dan)  Joshua Barczak (@joshuabarczak)  Bart Wronski (@bartwronsk)  Krzysztof Narkowicz (@knarkowicz)  Julien Guertault (@zavie)  Sander van Rossen (@logicalerror)  Lucas Hardi (@lhardi)  Tim Foley (@tangentvector)
  • 45. References  [Andersson07] Terrain rendering in Frostbite using Procedural Shader Splatting  [Hillaire15] Physically Based and Unified Volumetric Rendering in Frostbite  [Wronski14] Volumetric fog: Unified, compute shader based solution to atmospheric scattering  [Salvi15] Anti-Aliasing: Are We There Yet?  [Mara14] Fast Global Illumination Approximations on Deep G-Buffer  [Johansson15] Leap of Faith: The World of Mirror’s Edge Catalyst

Editor's Notes

  1. But before that…. I did 2 talks around major challenges in real-time rendering in 2010 and 2012 as well.
  2. The industry spent a lot of effort & energy (and still is) on the transition to low-level explicit graphics APIs Haven't been that many other changes in the rendering pipeline Esp. compute hasn't improved much
  3. But let’s go back to the rendering pipeline of today
  4. Arbitrary ellipsoid / anisotropic filtering
  5. This is the rendering passes we had in Frostbite 2 years ago for Battlefield 4. Our pipeline now with PBR has even more passes and complexity
  6. We’ve gotten really far with our real-time rendering results. Here is 2 screenshots and 2 photos of the same area from the new Need for Speed game. And it is getting quite difficult to tell which one is the photo and which one is the real-time render!
  7. But what is left to do, what are we missing to get that last 5-10%? It is also important to note that this is specifically created scene and as with all game development and real-time rendering we select & craft our worlds & visuals based on the limitations we know about. We avoid creating environments that we know we can’t create or won’t have the performance for or that doesn’t fit in together with the gameplay or other aspects.
  8. But what is left to do, what are we missing to get that last 5-10%? It is also important to note that this is specifically created scene and as with all game development and real-time rendering we select & craft our worlds & visuals based on the limitations we know about. We avoid creating environments that we know we can’t create or won’t have the performance for or that doesn’t fit in together with the gameplay or other aspects.
  9. But what is left to do, what are we missing to get that last 5-10%? It is also important to note that this is specifically created scene and as with all game development and real-time rendering we select & craft our worlds & visuals based on the limitations we know about. We avoid creating environments that we know we can’t create or won’t have the performance for or that doesn’t fit in together with the gameplay or other aspects.
  10. Avoid perf cliffs, prefer linear scaling cost of systems