SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
Dissecting the Rendering of
Philip Hammer
DECK13 Interactive GmbH
Quo Vadis, Berlin, 24.4.2018
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Introduction
● DECK13 Interactive released “The Surge” in 2017
○ New IP, new publisher
○ Overhauled tech (Fledge Engine / 3th Generation)
○ Award Winning: Best German Game, Best Graphics, Best PC-/Console-Game (Deutscher Entwicklerpreis 2017)
○ Our most ambitious game from DECK13
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Introduction
● Team of around 70 people in Frankfurt
○ Tech Department: ~11 people (engine + game code)
○ Art- & Sound-Outsourcing
● Myself
○ Since 2006 @ DECK13
○ Working on rendering / engine / graphics / shaders
○ Worked on The Surge, Lords of the Fallen, Venetica, Ankh, Jack Keane, etc.
● The results and techniques presented in this article is
the work of many people in the Deck13 Tech department.
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
● Fledge Gen 1 (2009: Blood Knights, Tiger & Chicken)
○ PS3, Xbox 360, PC / D3D9, iOS (iPad 2 and up)
○ Deferred Rendering, Direct Lighting only, Minimal Multithreading
● Fledge Gen 2 (2012: Lords of the Fallen)
○ PS4, Xbox One, PC / D3D11
○ Volumetric Lighting, Direct & Indirect Lighting, Task-based multithreaded rendering
● Fledge Gen 3 (2014: The Surge)
○ PS4 (+Pro), Xbox One (+X), PC / D3D11
○ Physically-based rendering, Clustered Deferred Rendering, GPU Particles
● Fledge Gen 4 (2017/2018: The Surge 2)
○ Vulkan, D3D12
○ Currently in the making .. stay tuned
Tech Evolution
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
● Fledge Gen 1 (2009: Blood Knights, Tiger & Chicken)
○ PS3, Xbox 360, PC / D3D9, iOS (iPad 2 and up)
○ Deferred Rendering, Direct Lighting only, Minimal Multithreading
● Fledge Gen 2 (2012: Lords of the Fallen)
○ PS4, Xbox One, PC / D3D11
○ Volumetric Lighting, Direct & Indirect Lighting, Task-based multithreaded rendering
● Fledge Gen 3 (2014: The Surge)
○ PS4 (+Pro), Xbox One (+X), PC / D3D11
○ Physically-based rendering, Clustered Deferred Rendering, GPU Particles
● Fledge Gen 4 (2017/2018: The Surge 2)
○ Vulkan, D3D12
○ Currently in the making .. stay tuned
Tech Evolution
Today’s topics
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Tech Evolution
● The Surge Tech (Gen 3)
○ Stable Framerate across all platforms
PS4: 1080p @ 30 FPS
PS4 Pro: 1620p @ 30 FPS or 1080p @ 60 FPS
Xbox One: 900p @ 30 FPS
Xbox One X: 1800p @ 30 FPS or 1080p @ 60 FPS
○ Physical-Based Rendering
○ Clustered Deferred Rendering
○ Volumetric Lighting
○ GPU Particles
○ Screen-space Reflections
○ etc.
● New things in the making (Gen 4) - short peak into the future towards the end
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Physical-based Rendering
● Switched from (non-PBR) Blinn-Phong to
GGX Cook-Torrance BRDF [1]
○ De-facto industry standard.
○ More material data to drive the BRDF
● Artists needed to adapt (Workflow, Tools, Mindset)
○ Lots of pitfalls (no arbitrary texture data)
○ Adoption process was rather unproblematic -
most tools (Substance, Marmoset) already provide PBR workflow
● We use “Metalness-Workflow”
○ Artist provide Albedo, Normal, Roughness and Metalness textures
○ Metalness is a mask to treat the albedo differently in specular lighting
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Physical-based Rendering
● Direct Lighting: 100% dynamic lights
○ 16 shadowmaps rendered into atlas (4kx4k - 8kx8k, D16_FLOAT)
○ If cap reached, the shadowmap isn’t updated anymore and
virtually becomes static
● Image-based lighting
○ Precomputed, parallax corrected environment probes (Artist placed)
○ Specular probe is 256x256 cubemap (BC6_UFLOAT)
with GGX filtered importance sampled mip chain [2]
○ Diffuse lighting is simply the 6th mip level of probe
(“incorrect”, but visually equivalent with proper irradiance)
○ IBL pass can be modified with simple, multiplicative “ambient lights” [3]
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Physical-based Rendering
● G-Buffer breakdown
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Physical-based Rendering
● G-Buffer breakdown
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Physical-based Rendering
X Y Z W
RT0 (8:8:8:8) Albedo RGB Material-ID
RT1 (10:10:10:2) VS Normal XYZ -
RT2 (8:8:8:8) Roughness Metalness Occlusion [shared]
RT3 (16:16) Motion Vectors XY - -
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Physical-based Rendering
● Material-ID indexes directly into StructuredBuffer to query per-material data
○ Save G-Buffer space
● [shared] - per-pixel context dependent
○ mutual exclusive material data
○ based on per-material data
○ Emissive Mask
■ Defines whether or not to interpret albedo as emissive
■ Emissive combined in final “combine” pass
■ Effectively saves dedicated emissive channel
○ Translucency
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Clustered Deferred Rendering
● Switch from rasterization-based light volume rendering to full (async) compute-based approach
○ Low CPU overhead
■ Light culling runs entirely on GPU
■ Filling a buffer with light infos instead of dispatching thousands of drawcalls
○ Advantages on GPU
■ No need to fetch G-Buffer for every light
○ Async Compute: Lighting runs in parallel to shadow rendering (at least on consoles)
○ But: many more optimizations necessary to get better perf
● Could render environment probes in the same pass
○ Environment probes are still clustered but rendered in a separate (pixelshader) pass together with SSR
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Clustered Deferred Rendering
● Divide view frustum into a 3D grid
○ In our case: 16 x 8 x 24
● Culling: Assign lights to grid cells
○ Upload light culling info to GPU (StructuredBuffer with Position, AABB, etc.)
○ Create list of light indices for each cell (single large uint buffer)
● Dispatch lighting compute shader
○ In fact we dispatch twice: unshadowed and shadowed lights
○ Unshadowed can run in parallel with shadowmap generation
● Can use cluster information also for forward rendering
○ We do this for our lit transparent objects
○ Simply compute grid cell index for a position and query light list
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Deferred Decals
● Decals play a major role in our environment art
○ Static: Logos/Signs, Material Layers (Sand, Water Puddles, Rust, etc.), Color Variations
○ Dynamic: Blood, Explosion Marks, etc.
● Extremely flexible
● Break uniform look of heavily instanced scenes
● Adds lot of large- and small-scale details
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Deferred Decals
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Deferred Decals
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Deferred Decals
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Deferred Decals
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Deferred Decals
● Modifies G-Buffer by alpha-blending onto it
○ Therefore, lighting is “free” since it’s done afterwards
● 2 methods for tangentspace reconstruction
○ Surface Normal (use G-Buffer normal)
○ Planar (use decal projection direction)
● Full PBR support + many per-decal features (add. Mask, UV modifiers, etc.)
● Implementation rasterization-based deferred
○ Rasterize geometry (boxes) for each decal
○ CPU bottleneck with large number of decals
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Deferred Decals
● Common issue with Deferred Decals: Wrong Mip Selection due to screenspace gradients
○ Problem: Texture leaks around depth discontinuities
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Deferred Decals
● Common issue with Deferred Decals: Wrong Mip Selection due to screenspace gradients
○ Problem: Texture leaks around depth discontinuities
○ Common solution: Use highest mip
■ Causes flickering in distance due to oversampling (no mips)
■ Texture cache hit
○ Our solution: Use mip0 only with large depth discontinuities
// Sample 2 quads
const float4 d0 = depthSampler.Gather(sampler_point_clamp, screenUV, int2(-1, -1));
const float4 d1 = depthSampler.Gather(sampler_point_clamp, screenUV, int2(0, 0));
const float4 dCross = float4 (d0.z, d0.y, d1.y, d1.z);
const float dC = d.w;
// Find suitable neighbor screen positions in x and y so we can compute proper gradients
// Select based on the smallest different in depth
const bool useFirstMip = any(abs(dC.xxxx - dCross) > 0.001);
if (useFirstMip)
albedoTex.SampleLevel(..);
else
albedoTex.Sample(..);
d0.x d0.y
d0.z d0.w
d1.x d1.y
d1.z d1.w
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
“Object Decals”
● Alternative Term: “Blend Meshes”
● Alpha-Blend arbitrary meshes on the G-Buffer
○ Artists can create simple plane-”decals” with custom UV setup
○ Efficiently add small, high-res details like panels, rivets, LED, etc.
○ Works also on skinned objects (e.g. logos on Exo-Gear)
1 Base G-Buffer Pass (solid)
2 Object Decal Pass (alpha-blend)
3 Deferred Decal Pass (alpha-blend)
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Next Decals / Fledge Gen 4
● “Bindless” Decals
○ Analogous to clustered deferred lighting
■ Culling & rendering happens entirely on the GPU
■ Collect info about all visible decals in a buffer
■ Render all decals before lighting in the same compute shader
○ Decal info stores texture IDs (UINT32) to index directly into DescriptorSet / DescriptorTable
○ Blending not restricted to alpha-blending anymore (linear interpolation)
■ “Geometric” normal blending possible [4]
■ Replacing layered materials with decals is now feasible
○ Availability of interpolated vertex-normals in G-Buffer improves T-Space reconstruction
○ Currently in active development
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Optimizing for Occupancy / GCN
● GCN Hardware wants saturated CU Units
○ Huge lighting shader uses a lot of general purpose registers
if not structured carefully
● Reducing register usage (VGPR/SGPR) can be a huge win
○ Especially for long, ALU heavy shaders such as lighting
○ Minimize register lifetime
○ Look at the data and iterate
■ runtime profilers
■ static shader code analysis statistics
● Goal: Want min. 40% GCN Wave Occupancy on
PS4 and Xbox One (for lighting compute shader)
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
Optimizing for Occupancy / GCN
● Example: Split light type loops
○ Different light types uses different data
■ Shadowed lights use shadow projection matrices, shadowmaps, etc.
■ Image projectors use image projection matrices, images, etc.
■ Boxlights must check bounds differently
■ etc.
○ Shader can free up register usage if structured well
for each light in lightbuffer
if light.type == POINT
// do pointlight calculations
if light.type == SPOT
// do spotlight calculations
else if light.type == SPOT_SHADOWED
// do shadowed spotlight calculated
end
for each light in lightbuffer_point
// do pointlight calculations
end
for each light in lightbuffer_spot
// do spotlight calculations
end
for each light in lightbuffer_spot_shadowed
// do shadowed spotlight calculations
end
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
What’s next ?
● Currently working on Fledge Gen 4
○ Always improving tech iteratively
○ Always keep existing systems “alive”
○ Parallel Development of new systems / breaking changes
● Spread knowledge
○ Weekly presentation meeting (tech internal)
● Leap to new APIs
○ Vulkan, DirectX 12
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
What’s next ?
● New low-level renderer design
○ Better match the new APIs (no more state-driven)
○ More low-level control such as explicit resource syncs, GPU memory management, etc.
○ Async-Compute also on PC
○ More C-style, more data-oriented
○ “Do as little as possible during render-loop” aka “prebake as much as we can”
■ Setting DescriptorSets, Map/Unmap GPU memory, etc.
○ Goal: Rendering must not be a CPU performance bottleneck
● Better ingame-profiling for content creators
● Better tools for artists and game designers
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
What’s next ?
● Improving specific rendering subsystems
○ Switch to physically based inverse square falloff (lumen units)
○ Improved IBL system (e.g. split irradiance and specular probes)
○ Unified volumetric fog / lighting (“lit fog” vs. “volumetric lighting”)
○ Bindless Decals
○ New material system
■ More flexibility for custom shaders / FX Materials
■ Better fit for the new rendering backend interface
○ Improved postprocessing, Antialiasing, HDR tonemapping / color correction
Thank you for
your attention!
DECK13 is hiring!
● Tools Programmer
● Concept Environment Artist
● VFX Artist
● etc.
@philiphammer0
phammer@deck13.com
linkedin.com/in/philip-hammer-430baa6
Questions ?
Dissecting the Rendering of The Surge
Quo Vadis Berlin 2018
References
[1] Walter et al., "Microfacet Models for Refraction through Rough Surfaces"
[2] Karis, “Real Shading in Unreal Engine 4”, Siggraph 2013
[3] Schulz, Mader, “Rendering Techniques in Ryse: Son of Rome”, Siggraph 2014
[4] Barré-Brisebois, Hill, "Blending in Detail"
http://blog.selfshadow.com/publications/blending-in-detail/

Más contenido relacionado

La actualidad más candente

Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The SurgeMichele Giacalone
 
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
 
Advancements in-tiled-rendering
Advancements in-tiled-renderingAdvancements in-tiled-rendering
Advancements in-tiled-renderingmistercteam
 
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
 
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
 
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 GenerationGuerrilla
 
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
 
More explosions, more chaos, and definitely more blowing stuff up
More explosions, more chaos, and definitely more blowing stuff upMore explosions, more chaos, and definitely more blowing stuff up
More explosions, more chaos, and definitely more blowing stuff upIntel® Software
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologyTiago Sousa
 
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 GDC14AMD Developer Central
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space MarinePope Kim
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lightingozlael ozlael
 
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
 
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
 
Approaching zero driver overhead
Approaching zero driver overheadApproaching zero driver overhead
Approaching zero driver overheadCass Everitt
 
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 3Electronic Arts / DICE
 
The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2Guerrilla
 

La actualidad más candente (20)

Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The Surge
 
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
 
Advancements in-tiled-rendering
Advancements in-tiled-renderingAdvancements in-tiled-rendering
Advancements in-tiled-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
 
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
 
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
 
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
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)
 
More explosions, more chaos, and definitely more blowing stuff up
More explosions, more chaos, and definitely more blowing stuff upMore explosions, more chaos, and definitely more blowing stuff up
More explosions, more chaos, and definitely more blowing stuff up
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics Technology
 
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
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space Marine
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lighting
 
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)
 
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)
 
Approaching zero driver overhead
Approaching zero driver overheadApproaching zero driver overhead
Approaching zero driver overhead
 
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
 
The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2
 
Bending the Graphics Pipeline
Bending the Graphics PipelineBending the Graphics Pipeline
Bending the Graphics Pipeline
 

Similar a Dissecting the Rendering of The Surge

The rendering technology of 'lords of the fallen' philip hammer
The rendering technology of 'lords of the fallen'   philip hammerThe rendering technology of 'lords of the fallen'   philip hammer
The rendering technology of 'lords of the fallen' philip hammerMary Chan
 
Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemGuerrilla
 
Developing games and graphic visualizations in Pascal
Developing games and graphic visualizations in PascalDeveloping games and graphic visualizations in Pascal
Developing games and graphic visualizations in PascalMichalis Kamburelis
 
DALL-E.pdf
DALL-E.pdfDALL-E.pdf
DALL-E.pdfdsfajkh
 
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...Lviv Startup Club
 
Realtime 3D Visualization without GPU
Realtime 3D Visualization without GPURealtime 3D Visualization without GPU
Realtime 3D Visualization without GPUTobias G
 
Unity: Next Level Rendering Quality
Unity: Next Level Rendering QualityUnity: Next Level Rendering Quality
Unity: Next Level Rendering QualityUnity Technologies
 
NVIDIA Graphics, Cg, and Transparency
NVIDIA Graphics, Cg, and TransparencyNVIDIA Graphics, Cg, and Transparency
NVIDIA Graphics, Cg, and TransparencyMark Kilgard
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86Droidcon Berlin
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentDavid Galeano
 
Domain adaptation for Image Segmentation
Domain adaptation for Image SegmentationDomain adaptation for Image Segmentation
Domain adaptation for Image SegmentationDeepak Thukral
 
Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2ozlael ozlael
 
Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Guerrilla
 
Computer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming IComputer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming I💻 Anton Gerdelan
 
GPU Accelerated Domain Decomposition
GPU Accelerated Domain DecompositionGPU Accelerated Domain Decomposition
GPU Accelerated Domain DecompositionRichard Southern
 
Minko stage3d workshop_20130525
Minko stage3d workshop_20130525Minko stage3d workshop_20130525
Minko stage3d workshop_20130525Minko3D
 
Graphics pipelining
Graphics pipeliningGraphics pipelining
Graphics pipeliningAreena Javed
 
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
 

Similar a Dissecting the Rendering of The Surge (20)

The rendering technology of 'lords of the fallen' philip hammer
The rendering technology of 'lords of the fallen'   philip hammerThe rendering technology of 'lords of the fallen'   philip hammer
The rendering technology of 'lords of the fallen' philip hammer
 
Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo Postmortem
 
Developing games and graphic visualizations in Pascal
Developing games and graphic visualizations in PascalDeveloping games and graphic visualizations in Pascal
Developing games and graphic visualizations in Pascal
 
DALL-E.pdf
DALL-E.pdfDALL-E.pdf
DALL-E.pdf
 
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
 
Realtime 3D Visualization without GPU
Realtime 3D Visualization without GPURealtime 3D Visualization without GPU
Realtime 3D Visualization without GPU
 
Unity: Next Level Rendering Quality
Unity: Next Level Rendering QualityUnity: Next Level Rendering Quality
Unity: Next Level Rendering Quality
 
NVIDIA Graphics, Cg, and Transparency
NVIDIA Graphics, Cg, and TransparencyNVIDIA Graphics, Cg, and Transparency
NVIDIA Graphics, Cg, and Transparency
 
Masked Occlusion Culling
Masked Occlusion CullingMasked Occlusion Culling
Masked Occlusion Culling
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game development
 
Domain adaptation for Image Segmentation
Domain adaptation for Image SegmentationDomain adaptation for Image Segmentation
Domain adaptation for Image Segmentation
 
Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2
 
Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2
 
Computer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming IComputer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming I
 
GPU Accelerated Domain Decomposition
GPU Accelerated Domain DecompositionGPU Accelerated Domain Decomposition
GPU Accelerated Domain Decomposition
 
Minko stage3d workshop_20130525
Minko stage3d workshop_20130525Minko stage3d workshop_20130525
Minko stage3d workshop_20130525
 
Open gl
Open glOpen gl
Open gl
 
Graphics pipelining
Graphics pipeliningGraphics pipelining
Graphics pipelining
 
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...
 

Último

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 

Último (20)

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 

Dissecting the Rendering of The Surge

  • 1. Dissecting the Rendering of Philip Hammer DECK13 Interactive GmbH Quo Vadis, Berlin, 24.4.2018
  • 2. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Introduction ● DECK13 Interactive released “The Surge” in 2017 ○ New IP, new publisher ○ Overhauled tech (Fledge Engine / 3th Generation) ○ Award Winning: Best German Game, Best Graphics, Best PC-/Console-Game (Deutscher Entwicklerpreis 2017) ○ Our most ambitious game from DECK13
  • 3. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Introduction ● Team of around 70 people in Frankfurt ○ Tech Department: ~11 people (engine + game code) ○ Art- & Sound-Outsourcing ● Myself ○ Since 2006 @ DECK13 ○ Working on rendering / engine / graphics / shaders ○ Worked on The Surge, Lords of the Fallen, Venetica, Ankh, Jack Keane, etc. ● The results and techniques presented in this article is the work of many people in the Deck13 Tech department.
  • 4. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 ● Fledge Gen 1 (2009: Blood Knights, Tiger & Chicken) ○ PS3, Xbox 360, PC / D3D9, iOS (iPad 2 and up) ○ Deferred Rendering, Direct Lighting only, Minimal Multithreading ● Fledge Gen 2 (2012: Lords of the Fallen) ○ PS4, Xbox One, PC / D3D11 ○ Volumetric Lighting, Direct & Indirect Lighting, Task-based multithreaded rendering ● Fledge Gen 3 (2014: The Surge) ○ PS4 (+Pro), Xbox One (+X), PC / D3D11 ○ Physically-based rendering, Clustered Deferred Rendering, GPU Particles ● Fledge Gen 4 (2017/2018: The Surge 2) ○ Vulkan, D3D12 ○ Currently in the making .. stay tuned Tech Evolution
  • 5. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 ● Fledge Gen 1 (2009: Blood Knights, Tiger & Chicken) ○ PS3, Xbox 360, PC / D3D9, iOS (iPad 2 and up) ○ Deferred Rendering, Direct Lighting only, Minimal Multithreading ● Fledge Gen 2 (2012: Lords of the Fallen) ○ PS4, Xbox One, PC / D3D11 ○ Volumetric Lighting, Direct & Indirect Lighting, Task-based multithreaded rendering ● Fledge Gen 3 (2014: The Surge) ○ PS4 (+Pro), Xbox One (+X), PC / D3D11 ○ Physically-based rendering, Clustered Deferred Rendering, GPU Particles ● Fledge Gen 4 (2017/2018: The Surge 2) ○ Vulkan, D3D12 ○ Currently in the making .. stay tuned Tech Evolution Today’s topics
  • 6. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Tech Evolution ● The Surge Tech (Gen 3) ○ Stable Framerate across all platforms PS4: 1080p @ 30 FPS PS4 Pro: 1620p @ 30 FPS or 1080p @ 60 FPS Xbox One: 900p @ 30 FPS Xbox One X: 1800p @ 30 FPS or 1080p @ 60 FPS ○ Physical-Based Rendering ○ Clustered Deferred Rendering ○ Volumetric Lighting ○ GPU Particles ○ Screen-space Reflections ○ etc. ● New things in the making (Gen 4) - short peak into the future towards the end
  • 7. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Physical-based Rendering ● Switched from (non-PBR) Blinn-Phong to GGX Cook-Torrance BRDF [1] ○ De-facto industry standard. ○ More material data to drive the BRDF ● Artists needed to adapt (Workflow, Tools, Mindset) ○ Lots of pitfalls (no arbitrary texture data) ○ Adoption process was rather unproblematic - most tools (Substance, Marmoset) already provide PBR workflow ● We use “Metalness-Workflow” ○ Artist provide Albedo, Normal, Roughness and Metalness textures ○ Metalness is a mask to treat the albedo differently in specular lighting
  • 8. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Physical-based Rendering ● Direct Lighting: 100% dynamic lights ○ 16 shadowmaps rendered into atlas (4kx4k - 8kx8k, D16_FLOAT) ○ If cap reached, the shadowmap isn’t updated anymore and virtually becomes static ● Image-based lighting ○ Precomputed, parallax corrected environment probes (Artist placed) ○ Specular probe is 256x256 cubemap (BC6_UFLOAT) with GGX filtered importance sampled mip chain [2] ○ Diffuse lighting is simply the 6th mip level of probe (“incorrect”, but visually equivalent with proper irradiance) ○ IBL pass can be modified with simple, multiplicative “ambient lights” [3]
  • 9. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Physical-based Rendering ● G-Buffer breakdown
  • 10. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Physical-based Rendering ● G-Buffer breakdown
  • 11. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Physical-based Rendering X Y Z W RT0 (8:8:8:8) Albedo RGB Material-ID RT1 (10:10:10:2) VS Normal XYZ - RT2 (8:8:8:8) Roughness Metalness Occlusion [shared] RT3 (16:16) Motion Vectors XY - -
  • 12. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Physical-based Rendering ● Material-ID indexes directly into StructuredBuffer to query per-material data ○ Save G-Buffer space ● [shared] - per-pixel context dependent ○ mutual exclusive material data ○ based on per-material data ○ Emissive Mask ■ Defines whether or not to interpret albedo as emissive ■ Emissive combined in final “combine” pass ■ Effectively saves dedicated emissive channel ○ Translucency
  • 13. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Clustered Deferred Rendering ● Switch from rasterization-based light volume rendering to full (async) compute-based approach ○ Low CPU overhead ■ Light culling runs entirely on GPU ■ Filling a buffer with light infos instead of dispatching thousands of drawcalls ○ Advantages on GPU ■ No need to fetch G-Buffer for every light ○ Async Compute: Lighting runs in parallel to shadow rendering (at least on consoles) ○ But: many more optimizations necessary to get better perf ● Could render environment probes in the same pass ○ Environment probes are still clustered but rendered in a separate (pixelshader) pass together with SSR
  • 14. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Clustered Deferred Rendering ● Divide view frustum into a 3D grid ○ In our case: 16 x 8 x 24 ● Culling: Assign lights to grid cells ○ Upload light culling info to GPU (StructuredBuffer with Position, AABB, etc.) ○ Create list of light indices for each cell (single large uint buffer) ● Dispatch lighting compute shader ○ In fact we dispatch twice: unshadowed and shadowed lights ○ Unshadowed can run in parallel with shadowmap generation ● Can use cluster information also for forward rendering ○ We do this for our lit transparent objects ○ Simply compute grid cell index for a position and query light list
  • 15. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Deferred Decals ● Decals play a major role in our environment art ○ Static: Logos/Signs, Material Layers (Sand, Water Puddles, Rust, etc.), Color Variations ○ Dynamic: Blood, Explosion Marks, etc. ● Extremely flexible ● Break uniform look of heavily instanced scenes ● Adds lot of large- and small-scale details
  • 16. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Deferred Decals
  • 17. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Deferred Decals
  • 18. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Deferred Decals
  • 19. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Deferred Decals
  • 20. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Deferred Decals ● Modifies G-Buffer by alpha-blending onto it ○ Therefore, lighting is “free” since it’s done afterwards ● 2 methods for tangentspace reconstruction ○ Surface Normal (use G-Buffer normal) ○ Planar (use decal projection direction) ● Full PBR support + many per-decal features (add. Mask, UV modifiers, etc.) ● Implementation rasterization-based deferred ○ Rasterize geometry (boxes) for each decal ○ CPU bottleneck with large number of decals
  • 21. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Deferred Decals ● Common issue with Deferred Decals: Wrong Mip Selection due to screenspace gradients ○ Problem: Texture leaks around depth discontinuities
  • 22. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Deferred Decals ● Common issue with Deferred Decals: Wrong Mip Selection due to screenspace gradients ○ Problem: Texture leaks around depth discontinuities ○ Common solution: Use highest mip ■ Causes flickering in distance due to oversampling (no mips) ■ Texture cache hit ○ Our solution: Use mip0 only with large depth discontinuities // Sample 2 quads const float4 d0 = depthSampler.Gather(sampler_point_clamp, screenUV, int2(-1, -1)); const float4 d1 = depthSampler.Gather(sampler_point_clamp, screenUV, int2(0, 0)); const float4 dCross = float4 (d0.z, d0.y, d1.y, d1.z); const float dC = d.w; // Find suitable neighbor screen positions in x and y so we can compute proper gradients // Select based on the smallest different in depth const bool useFirstMip = any(abs(dC.xxxx - dCross) > 0.001); if (useFirstMip) albedoTex.SampleLevel(..); else albedoTex.Sample(..); d0.x d0.y d0.z d0.w d1.x d1.y d1.z d1.w
  • 23. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 “Object Decals” ● Alternative Term: “Blend Meshes” ● Alpha-Blend arbitrary meshes on the G-Buffer ○ Artists can create simple plane-”decals” with custom UV setup ○ Efficiently add small, high-res details like panels, rivets, LED, etc. ○ Works also on skinned objects (e.g. logos on Exo-Gear) 1 Base G-Buffer Pass (solid) 2 Object Decal Pass (alpha-blend) 3 Deferred Decal Pass (alpha-blend)
  • 24. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Next Decals / Fledge Gen 4 ● “Bindless” Decals ○ Analogous to clustered deferred lighting ■ Culling & rendering happens entirely on the GPU ■ Collect info about all visible decals in a buffer ■ Render all decals before lighting in the same compute shader ○ Decal info stores texture IDs (UINT32) to index directly into DescriptorSet / DescriptorTable ○ Blending not restricted to alpha-blending anymore (linear interpolation) ■ “Geometric” normal blending possible [4] ■ Replacing layered materials with decals is now feasible ○ Availability of interpolated vertex-normals in G-Buffer improves T-Space reconstruction ○ Currently in active development
  • 25. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Optimizing for Occupancy / GCN ● GCN Hardware wants saturated CU Units ○ Huge lighting shader uses a lot of general purpose registers if not structured carefully ● Reducing register usage (VGPR/SGPR) can be a huge win ○ Especially for long, ALU heavy shaders such as lighting ○ Minimize register lifetime ○ Look at the data and iterate ■ runtime profilers ■ static shader code analysis statistics ● Goal: Want min. 40% GCN Wave Occupancy on PS4 and Xbox One (for lighting compute shader)
  • 26. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 Optimizing for Occupancy / GCN ● Example: Split light type loops ○ Different light types uses different data ■ Shadowed lights use shadow projection matrices, shadowmaps, etc. ■ Image projectors use image projection matrices, images, etc. ■ Boxlights must check bounds differently ■ etc. ○ Shader can free up register usage if structured well for each light in lightbuffer if light.type == POINT // do pointlight calculations if light.type == SPOT // do spotlight calculations else if light.type == SPOT_SHADOWED // do shadowed spotlight calculated end for each light in lightbuffer_point // do pointlight calculations end for each light in lightbuffer_spot // do spotlight calculations end for each light in lightbuffer_spot_shadowed // do shadowed spotlight calculations end
  • 27. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 What’s next ? ● Currently working on Fledge Gen 4 ○ Always improving tech iteratively ○ Always keep existing systems “alive” ○ Parallel Development of new systems / breaking changes ● Spread knowledge ○ Weekly presentation meeting (tech internal) ● Leap to new APIs ○ Vulkan, DirectX 12
  • 28. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 What’s next ? ● New low-level renderer design ○ Better match the new APIs (no more state-driven) ○ More low-level control such as explicit resource syncs, GPU memory management, etc. ○ Async-Compute also on PC ○ More C-style, more data-oriented ○ “Do as little as possible during render-loop” aka “prebake as much as we can” ■ Setting DescriptorSets, Map/Unmap GPU memory, etc. ○ Goal: Rendering must not be a CPU performance bottleneck ● Better ingame-profiling for content creators ● Better tools for artists and game designers
  • 29. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 What’s next ? ● Improving specific rendering subsystems ○ Switch to physically based inverse square falloff (lumen units) ○ Improved IBL system (e.g. split irradiance and specular probes) ○ Unified volumetric fog / lighting (“lit fog” vs. “volumetric lighting”) ○ Bindless Decals ○ New material system ■ More flexibility for custom shaders / FX Materials ■ Better fit for the new rendering backend interface ○ Improved postprocessing, Antialiasing, HDR tonemapping / color correction
  • 30. Thank you for your attention! DECK13 is hiring! ● Tools Programmer ● Concept Environment Artist ● VFX Artist ● etc. @philiphammer0 phammer@deck13.com linkedin.com/in/philip-hammer-430baa6
  • 32. Dissecting the Rendering of The Surge Quo Vadis Berlin 2018 References [1] Walter et al., "Microfacet Models for Refraction through Rough Surfaces" [2] Karis, “Real Shading in Unreal Engine 4”, Siggraph 2013 [3] Schulz, Mader, “Rendering Techniques in Ryse: Son of Rome”, Siggraph 2014 [4] Barré-Brisebois, Hill, "Blending in Detail" http://blog.selfshadow.com/publications/blending-in-detail/