SlideShare une entreprise Scribd logo
1  sur  43
Deformable Snow
Rendering in Batman™: Arkham Origins
Colin Barré-Brisebois (Lead Rendering Programmer)
Agenda
 Motivations
 Deformable Snow
● Novel technique for
rendering of surfaces
covered with fallen
deformable snow
● For consoles and
enhanced for PC
(DX11 tessellation)
 Q&A
Motivations
 Enhance the world with
dynamics of deformable snow
 Three requirements:
1. Iconic visuals of deformable snow
2. Organic deformation from walking,
falling, sliding, fighting and more
3. Low memory usage and low performance cost for
an open world game
Iconic / Organic Deformable Snow
From Google Images - http://bit.ly/M7T9kV (footsteps in snow, left) and http://bit.ly/M7TbJB (snow angel, right)
Previous Work?
[St-Amour 2013] (Assassin’s Creed 3)
[Edwards 2012] (Journey)
 Raycast on a terrain / Modify terrain mesh.
- We don’t have terrain. We have rooftops and streets.
- Besides, we don’t want to add raycasts.
 Requires variable triangle density for visually
convincing vertex displacement in all cases
- PC DX11 with tessellation is great… but what about consoles?

Our Approach (1/)
 Generate displacement heightmaps at runtime
● Snow prints are a semi-low frequency detail effect
● Cheap approximation works with footsteps & more
● Great performance, and low memory usage
 Consoles: virtual displacement via Relief Mapping
● Minimal taps. No “swimming”
● Independent of triangle density
 PC: DirectX 11 version with tessellation
Our Approach (2/)
 Gotham has many rooftops and streets
 Dynamically alloc/dealloc heightmaps based on
size, player/AIs and visibility
Heightmaps
Feet
Cape
Feet
Cape
 Render snow-affecting objects
looking from under the surface
using an ankle-high orthogonal
frustum
1. Clear to black
2. Render actors in white
3. Filter and accumulate (ping/pong) in a texture
 Anything in that zone will affect the heightmap
(feet, hands, sliding, throwing a thug to the ground…)
Generating the Heightmap ?
Ankle-high Orthogonal Frustum
Let’s see what it looks like at
runtime!
Update Loop
For every active* snow surface
1. Figure out if surface-affecting object is on the surface
-We use a quad tree look-up rather than keeping an
actor list for each surface
2. Override materials on all parts
- Simple white material
3. Render actors
4. Process/Accumulate with custom post-process chain
Heightmap Accumulation & Render
 Stage 1 – Get results & small blur
● 4-tap bilinear Poisson
 Stage 2 – Add to existing heightmap
● During this stage, you can also subtract a
small value to the heightmap to make snow
gradually replenish (since it’s snowing) 
 Stage 3 – Shading
Stage 3 - Shading (1/)
 Snow surfaces have 2 material options
1. Basic Snow Material
o Active when surface is not being deformed
o Shows new / clean / untouched snow, cheaper
2. Deformable Snow Material
o Two stages: non-deformed or fully flattened snow
o Non-deformed part the same as Basic Snow Material
o Fully flattened shows rooftop tiles / concrete.
o Blends both stages using heightmap & Relief Mapping
Stage 3 - Shading (2/)
Non-deformed Snow
Flattened Snow
Stage 3 - Shading (3/)
 Blending Material Stages
● For diffuse & spec, simple lerp
o Also, tint diffuse with sky color in transition area to fake SSS
● For normals, blend using Reoriented Normal Mapping
[Barré-Brisebois & Hill 2012]
o Normals are not colors.
o You can’t lerp/overlay between directions!
o Used in game to:
● Blend the snow detail normal and the macro “wave” snow normal
● Add detail normal maps everywhere
Stage 3 - Shading (4/)
float3 t = tex2D(BaseNormal, uv) * float3(2, 2, 2) + float3(-1, -1, 0);
float3 u = tex2D(DetailNormal, uv) * float3(-2, -2, 2) + float3(1, 1, -1);
float3 r = t * dot(t, u) / t.z – u;
[Barré-Brisebois & Hill 2012]
Linear Interpolation
Overlay
[Barré-Brisebois & Hill 2012]
Reoriented Normal Mapping
Add. Implementation Details (1/)
 Surface UVs align with ortho frustum
● 0-1 range, simplifies heightmap-to-displacement
 Scaled world-space heightmap res.
● Min(512, ¼ * (SurfaceX, SurfaceY))
● Tries to keep texels “square”
● Doesn’t need to be high-res, looks better in lower
resolutions
● Must scale Relief Mapping parameters
Add. Implementation Details (2/)
 Split render & tick of active surfaces
● Snow surface where Batman stands has priority
● Only render 2 surfaces/frame (tweakable but good
enough, with distance-based priorities)
 Reuse memory from old heightmaps
● Not active/visible (max distance from sphere bounds)
● Un-streamed open-world zones
DirectX 11 With Tessellation (1/)
 Feature developed with our friends @
NVIDIA (Evgeny Makarov)
 Accurate displacement based on depth
● Capture the height field like a z-buffer
● Two channels:
o Minimum height field
o Projected displacement
● Allows for additive capture & smoother results.
● Also allows for deformable snow banks! 
Rooftop
Minimum Height field
Orthogonal Capture Frustum Projected Displacement
Final Surface (displaced)
DirectX 11 With Tessellation (2/)
DirectX 11 With Tessellation (3/)
 Tessellated version adds detailed
displacement calculated from the normal
map, globally applied to the snow surface
● Extra detail compared to the relief-mapped
version
● Takes the macro normal map to add
additional “macro waves”
Without Tessellation (No Macro Deformation)
With Tessellation (Macro Deformation)
DirectX 11 With Tessellation (4/)
 Runtime dicing of snow meshes
 Real geometry means:
● Works with Dynamic Shadows
o Character shadows now follows the surface and shift
with the deformation
o Self shadowing & self-shading
● Works with dynamic ambient occlusion
o AO fills-in the trails
Performance & Memory
 Performance
● Heightmaps update < 1.0ms GPU on PS3/360
 Memory
● 2 MB (360 / PS3 / WiiU)
o Since we’re using low resolution heightmaps
o This is flexible, but sufficient for our needs since we
allocate/deallocate as the player flies in the world
● 2-4 MB (FP16 vs FP32 on PC)
Caveats / Issues ?
 Relief-Mapped Approach
● Deformation looks great, but will never be as thick as
tessellation. Replace with Parallax Occlusion Mapping?
● Derive parametric AO from the heightmap?
 Tessellated Approach
● When artists were working on content creation, displacement
wasn't taken into account (pre-pass actors, open edges being
visible, etc...)
● Some meshes couldn't use tessellation as there were parts of
geometry right under the snow, not supposed to be visible
Future Endeavours…
 Save the heightmaps and reload them?
 Use this technique for other cases, such
as sand, mud, etc…
Summary
 A fast and low-memory footprint
technique to render deformable snow
surfaces
● Adds a really nice level of interaction between players
and the world
● Depics iconic & organic visuals of deformable snow
 A good tessellation case for your DX11
game using minimal editing and art tweaks
Thank You!
Érick Bilodeau
David Massicotte
Sébastien Turcotte
Jimmy Béliveau
Olivier Pomarez
Philippe Bernard
Ryan Lewis
Marc Bouchard
Jean-Noé Morissette
Pierric Gimmig
Patrick Dubuc
Reid Schneider
Maggy Larouche
Miguel Sainz
Evgeny Makarov
Jon Jansen
Christina Coffin
Jon Greenberg
NVIDIA
Questions?
colin.barrebrisebois@wbgames.com / @ZigguratVertigo
http://www.wbgamesmontreal.com
References
[Barré-Brisebois & Hill 2012]
Barré-Brisebois, Colin and Hill, Stephen. "Blending in Detail - Reoriented Normal Mapping", 2012.
http://bit.ly/Mf2UH0
[Edwards 2013]
Edwards, John. "Sand Rendering in Journey", Advances in Real-Time Rendering, SIGGRAPH, 2012.
http://advances.realtimerendering.com/s2012/index.html
[Policarpo & Oliveira 2006]
Policarpo, Fabio and Oliveira, Manuel M. Rendering Surface Details in Games with Relief Mapping Using a
Minimally Invasive Approach. In:Wolfgang Engel (ed.). SHADER X4: Lighting & Rendering. Charles
River Media, Inc., Hingham, Massachusetts, 2006 (ISBN 1-58450-425-0), pp. 109-119.
[St-Amour 2013]
St-Amour, Jean-François. "Rendering Assassin's Creed", Game Developers Conference, 2013.
GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins

Contenu connexe

Tendances

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
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John Hable
Naughty Dog
 

Tendances (20)

Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics Technology
 
Light prepass
Light prepassLight prepass
Light prepass
 
Dissecting the Rendering of The Surge
Dissecting the Rendering of The SurgeDissecting the Rendering of The Surge
Dissecting the Rendering of The Surge
 
Bindless Deferred Decals in The Surge 2
Bindless Deferred Decals in The Surge 2Bindless Deferred Decals in The Surge 2
Bindless Deferred Decals in The Surge 2
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-Graphics
 
Terrain in Battlefield 3: A Modern, Complete and Scalable System
Terrain in Battlefield 3: A Modern, Complete and Scalable SystemTerrain in Battlefield 3: A Modern, Complete and Scalable System
Terrain in Battlefield 3: A Modern, Complete and Scalable System
 
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
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
Rendering Techniques in Rise of the Tomb Raider
Rendering Techniques in Rise of the Tomb RaiderRendering Techniques in Rise of the Tomb Raider
Rendering Techniques in Rise of the Tomb Raider
 
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)
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John Hable
 
Advanced Scenegraph Rendering Pipeline
Advanced Scenegraph Rendering PipelineAdvanced Scenegraph Rendering Pipeline
Advanced Scenegraph Rendering Pipeline
 
Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3
 
Decima Engine: Visibility in Horizon Zero Dawn
Decima Engine: Visibility in Horizon Zero DawnDecima Engine: Visibility in Horizon Zero Dawn
Decima Engine: Visibility in Horizon Zero Dawn
 
Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3
 
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
 
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time RaytracingCEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
 
Bending the Graphics Pipeline
Bending the Graphics PipelineBending the Graphics Pipeline
Bending the Graphics Pipeline
 
GTC 2014 - DirectX 11 Rendering and NVIDIA GameWorks in Batman: Arkham Origins
GTC 2014 - DirectX 11 Rendering and NVIDIA GameWorks in Batman: Arkham OriginsGTC 2014 - DirectX 11 Rendering and NVIDIA GameWorks in Batman: Arkham Origins
GTC 2014 - DirectX 11 Rendering and NVIDIA GameWorks in Batman: Arkham Origins
 

En vedette

Uncharted 2: Character Pipeline
Uncharted 2: Character PipelineUncharted 2: Character Pipeline
Uncharted 2: Character Pipeline
Naughty Dog
 
State-Based Scripting in Uncharted 2: Among Thieves
State-Based Scripting in Uncharted 2: Among ThievesState-Based Scripting in Uncharted 2: Among Thieves
State-Based Scripting in Uncharted 2: Among Thieves
Naughty Dog
 
Uncharted Animation Workflow
Uncharted Animation WorkflowUncharted Animation Workflow
Uncharted Animation Workflow
Naughty Dog
 
Torrent downloaded from rarbg.com
Torrent downloaded from rarbg.comTorrent downloaded from rarbg.com
Torrent downloaded from rarbg.com
lehani
 
Alexis superman report
Alexis superman reportAlexis superman report
Alexis superman report
Susie Johnson
 

En vedette (20)

Naughty Dog Vertex
Naughty Dog VertexNaughty Dog Vertex
Naughty Dog Vertex
 
Uncharted 2: Character Pipeline
Uncharted 2: Character PipelineUncharted 2: Character Pipeline
Uncharted 2: Character Pipeline
 
Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Che...
Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Che...Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Che...
Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Che...
 
Modular Rigging in Battlefield 3
Modular Rigging in Battlefield 3Modular Rigging in Battlefield 3
Modular Rigging in Battlefield 3
 
Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15
Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15
Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15
 
State-Based Scripting in Uncharted 2: Among Thieves
State-Based Scripting in Uncharted 2: Among ThievesState-Based Scripting in Uncharted 2: Among Thieves
State-Based Scripting in Uncharted 2: Among Thieves
 
Uncharted Animation Workflow
Uncharted Animation WorkflowUncharted Animation Workflow
Uncharted Animation Workflow
 
Ant man
Ant manAnt man
Ant man
 
Mcguireday ancient civilizations pathfinder
Mcguireday ancient civilizations pathfinderMcguireday ancient civilizations pathfinder
Mcguireday ancient civilizations pathfinder
 
Future Forum 2013 - Bes fvg
Future Forum 2013 - Bes fvg Future Forum 2013 - Bes fvg
Future Forum 2013 - Bes fvg
 
Resident evil 3 nemesis
Resident evil 3 nemesisResident evil 3 nemesis
Resident evil 3 nemesis
 
El increible hulk
El increible hulkEl increible hulk
El increible hulk
 
Justice League of America
Justice League of AmericaJustice League of America
Justice League of America
 
Marvel Guide For Developers
Marvel Guide For DevelopersMarvel Guide For Developers
Marvel Guide For Developers
 
Torrent downloaded from rarbg.com
Torrent downloaded from rarbg.comTorrent downloaded from rarbg.com
Torrent downloaded from rarbg.com
 
Alexis superman report
Alexis superman reportAlexis superman report
Alexis superman report
 
The joker
The jokerThe joker
The joker
 
Batman
BatmanBatman
Batman
 
Captain America: Civil war
Captain America: Civil warCaptain America: Civil war
Captain America: Civil war
 
The Avengers
The AvengersThe Avengers
The Avengers
 

Similaire à GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins

Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Johan Andersson
 
FV_IGARSS11.ppt
FV_IGARSS11.pptFV_IGARSS11.ppt
FV_IGARSS11.ppt
grssieee
 
FV_IGARSS11.ppt
FV_IGARSS11.pptFV_IGARSS11.ppt
FV_IGARSS11.ppt
grssieee
 
FV_IGARSS11.ppt
FV_IGARSS11.pptFV_IGARSS11.ppt
FV_IGARSS11.ppt
grssieee
 
FV_IGARSS11.ppt
FV_IGARSS11.pptFV_IGARSS11.ppt
FV_IGARSS11.ppt
grssieee
 
Smedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicsSmedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphics
changehee lee
 
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
 
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
 

Similaire à GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins (20)

Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
 
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
 
Authoring of procedural rocks in The Blacksmith realtime short
Authoring of procedural rocks in The Blacksmith realtime shortAuthoring of procedural rocks in The Blacksmith realtime short
Authoring of procedural rocks in The Blacksmith realtime short
 
GDC 2012: Advanced Procedural Rendering in DX11
GDC 2012: Advanced Procedural Rendering in DX11GDC 2012: Advanced Procedural Rendering in DX11
GDC 2012: Advanced Procedural Rendering in DX11
 
Color and 3D Semantic Reconstruction of Indoor Scenes from RGB-D stream
Color and 3D Semantic Reconstruction of Indoor Scenes from RGB-D streamColor and 3D Semantic Reconstruction of Indoor Scenes from RGB-D stream
Color and 3D Semantic Reconstruction of Indoor Scenes from RGB-D stream
 
FV_IGARSS11.ppt
FV_IGARSS11.pptFV_IGARSS11.ppt
FV_IGARSS11.ppt
 
FV_IGARSS11.ppt
FV_IGARSS11.pptFV_IGARSS11.ppt
FV_IGARSS11.ppt
 
FV_IGARSS11.ppt
FV_IGARSS11.pptFV_IGARSS11.ppt
FV_IGARSS11.ppt
 
FV_IGARSS11.ppt
FV_IGARSS11.pptFV_IGARSS11.ppt
FV_IGARSS11.ppt
 
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
 
Terra formation control or how to move mountains
Terra formation control or how to move mountainsTerra formation control or how to move mountains
Terra formation control or how to move mountains
 
Icaros Photogrammetric Suite (IPS) Workflow
Icaros Photogrammetric Suite (IPS) WorkflowIcaros Photogrammetric Suite (IPS) Workflow
Icaros Photogrammetric Suite (IPS) Workflow
 
Smedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicsSmedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphics
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)
 
Floodplain Modeling with LiDAR-Derived Terrain
Floodplain Modeling with LiDAR-Derived TerrainFloodplain Modeling with LiDAR-Derived Terrain
Floodplain Modeling with LiDAR-Derived Terrain
 
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 ...
 
Advanced Lighting for Interactive Applications
Advanced Lighting for Interactive ApplicationsAdvanced Lighting for Interactive Applications
Advanced Lighting for Interactive Applications
 
Ice: lightweight, efficient rendering for remote sensing images
Ice: lightweight, efficient rendering for remote sensing imagesIce: lightweight, efficient rendering for remote sensing images
Ice: lightweight, efficient rendering for remote sensing images
 
The Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next StepsThe Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next Steps
 
5 Ways to Improve Your LiDAR Workflows
5 Ways to Improve Your LiDAR Workflows5 Ways to Improve Your LiDAR Workflows
5 Ways to Improve Your LiDAR Workflows
 

Dernier

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins

  • 1. Deformable Snow Rendering in Batman™: Arkham Origins Colin Barré-Brisebois (Lead Rendering Programmer)
  • 2. Agenda  Motivations  Deformable Snow ● Novel technique for rendering of surfaces covered with fallen deformable snow ● For consoles and enhanced for PC (DX11 tessellation)  Q&A
  • 3.
  • 4.
  • 5. Motivations  Enhance the world with dynamics of deformable snow  Three requirements: 1. Iconic visuals of deformable snow 2. Organic deformation from walking, falling, sliding, fighting and more 3. Low memory usage and low performance cost for an open world game
  • 6. Iconic / Organic Deformable Snow From Google Images - http://bit.ly/M7T9kV (footsteps in snow, left) and http://bit.ly/M7TbJB (snow angel, right)
  • 7. Previous Work? [St-Amour 2013] (Assassin’s Creed 3) [Edwards 2012] (Journey)  Raycast on a terrain / Modify terrain mesh. - We don’t have terrain. We have rooftops and streets. - Besides, we don’t want to add raycasts.  Requires variable triangle density for visually convincing vertex displacement in all cases - PC DX11 with tessellation is great… but what about consoles? 
  • 8. Our Approach (1/)  Generate displacement heightmaps at runtime ● Snow prints are a semi-low frequency detail effect ● Cheap approximation works with footsteps & more ● Great performance, and low memory usage  Consoles: virtual displacement via Relief Mapping ● Minimal taps. No “swimming” ● Independent of triangle density  PC: DirectX 11 version with tessellation
  • 9. Our Approach (2/)  Gotham has many rooftops and streets  Dynamically alloc/dealloc heightmaps based on size, player/AIs and visibility Heightmaps
  • 12.  Render snow-affecting objects looking from under the surface using an ankle-high orthogonal frustum 1. Clear to black 2. Render actors in white 3. Filter and accumulate (ping/pong) in a texture  Anything in that zone will affect the heightmap (feet, hands, sliding, throwing a thug to the ground…) Generating the Heightmap ?
  • 14.
  • 15.
  • 16.
  • 17. Let’s see what it looks like at runtime!
  • 18. Update Loop For every active* snow surface 1. Figure out if surface-affecting object is on the surface -We use a quad tree look-up rather than keeping an actor list for each surface 2. Override materials on all parts - Simple white material 3. Render actors 4. Process/Accumulate with custom post-process chain
  • 19. Heightmap Accumulation & Render  Stage 1 – Get results & small blur ● 4-tap bilinear Poisson  Stage 2 – Add to existing heightmap ● During this stage, you can also subtract a small value to the heightmap to make snow gradually replenish (since it’s snowing)   Stage 3 – Shading
  • 20. Stage 3 - Shading (1/)  Snow surfaces have 2 material options 1. Basic Snow Material o Active when surface is not being deformed o Shows new / clean / untouched snow, cheaper 2. Deformable Snow Material o Two stages: non-deformed or fully flattened snow o Non-deformed part the same as Basic Snow Material o Fully flattened shows rooftop tiles / concrete. o Blends both stages using heightmap & Relief Mapping
  • 21. Stage 3 - Shading (2/) Non-deformed Snow Flattened Snow
  • 22. Stage 3 - Shading (3/)  Blending Material Stages ● For diffuse & spec, simple lerp o Also, tint diffuse with sky color in transition area to fake SSS ● For normals, blend using Reoriented Normal Mapping [Barré-Brisebois & Hill 2012] o Normals are not colors. o You can’t lerp/overlay between directions! o Used in game to: ● Blend the snow detail normal and the macro “wave” snow normal ● Add detail normal maps everywhere
  • 23. Stage 3 - Shading (4/) float3 t = tex2D(BaseNormal, uv) * float3(2, 2, 2) + float3(-1, -1, 0); float3 u = tex2D(DetailNormal, uv) * float3(-2, -2, 2) + float3(1, 1, -1); float3 r = t * dot(t, u) / t.z – u; [Barré-Brisebois & Hill 2012]
  • 26. [Barré-Brisebois & Hill 2012] Reoriented Normal Mapping
  • 27. Add. Implementation Details (1/)  Surface UVs align with ortho frustum ● 0-1 range, simplifies heightmap-to-displacement  Scaled world-space heightmap res. ● Min(512, ¼ * (SurfaceX, SurfaceY)) ● Tries to keep texels “square” ● Doesn’t need to be high-res, looks better in lower resolutions ● Must scale Relief Mapping parameters
  • 28. Add. Implementation Details (2/)  Split render & tick of active surfaces ● Snow surface where Batman stands has priority ● Only render 2 surfaces/frame (tweakable but good enough, with distance-based priorities)  Reuse memory from old heightmaps ● Not active/visible (max distance from sphere bounds) ● Un-streamed open-world zones
  • 29. DirectX 11 With Tessellation (1/)  Feature developed with our friends @ NVIDIA (Evgeny Makarov)  Accurate displacement based on depth ● Capture the height field like a z-buffer ● Two channels: o Minimum height field o Projected displacement ● Allows for additive capture & smoother results. ● Also allows for deformable snow banks! 
  • 30. Rooftop Minimum Height field Orthogonal Capture Frustum Projected Displacement Final Surface (displaced) DirectX 11 With Tessellation (2/)
  • 31. DirectX 11 With Tessellation (3/)  Tessellated version adds detailed displacement calculated from the normal map, globally applied to the snow surface ● Extra detail compared to the relief-mapped version ● Takes the macro normal map to add additional “macro waves”
  • 32. Without Tessellation (No Macro Deformation)
  • 33. With Tessellation (Macro Deformation)
  • 34. DirectX 11 With Tessellation (4/)  Runtime dicing of snow meshes  Real geometry means: ● Works with Dynamic Shadows o Character shadows now follows the surface and shift with the deformation o Self shadowing & self-shading ● Works with dynamic ambient occlusion o AO fills-in the trails
  • 35.
  • 36. Performance & Memory  Performance ● Heightmaps update < 1.0ms GPU on PS3/360  Memory ● 2 MB (360 / PS3 / WiiU) o Since we’re using low resolution heightmaps o This is flexible, but sufficient for our needs since we allocate/deallocate as the player flies in the world ● 2-4 MB (FP16 vs FP32 on PC)
  • 37. Caveats / Issues ?  Relief-Mapped Approach ● Deformation looks great, but will never be as thick as tessellation. Replace with Parallax Occlusion Mapping? ● Derive parametric AO from the heightmap?  Tessellated Approach ● When artists were working on content creation, displacement wasn't taken into account (pre-pass actors, open edges being visible, etc...) ● Some meshes couldn't use tessellation as there were parts of geometry right under the snow, not supposed to be visible
  • 38. Future Endeavours…  Save the heightmaps and reload them?  Use this technique for other cases, such as sand, mud, etc…
  • 39. Summary  A fast and low-memory footprint technique to render deformable snow surfaces ● Adds a really nice level of interaction between players and the world ● Depics iconic & organic visuals of deformable snow  A good tessellation case for your DX11 game using minimal editing and art tweaks
  • 40. Thank You! Érick Bilodeau David Massicotte Sébastien Turcotte Jimmy Béliveau Olivier Pomarez Philippe Bernard Ryan Lewis Marc Bouchard Jean-Noé Morissette Pierric Gimmig Patrick Dubuc Reid Schneider Maggy Larouche Miguel Sainz Evgeny Makarov Jon Jansen Christina Coffin Jon Greenberg NVIDIA Questions? colin.barrebrisebois@wbgames.com / @ZigguratVertigo
  • 42. References [Barré-Brisebois & Hill 2012] Barré-Brisebois, Colin and Hill, Stephen. "Blending in Detail - Reoriented Normal Mapping", 2012. http://bit.ly/Mf2UH0 [Edwards 2013] Edwards, John. "Sand Rendering in Journey", Advances in Real-Time Rendering, SIGGRAPH, 2012. http://advances.realtimerendering.com/s2012/index.html [Policarpo & Oliveira 2006] Policarpo, Fabio and Oliveira, Manuel M. Rendering Surface Details in Games with Relief Mapping Using a Minimally Invasive Approach. In:Wolfgang Engel (ed.). SHADER X4: Lighting & Rendering. Charles River Media, Inc., Hingham, Massachusetts, 2006 (ISBN 1-58450-425-0), pp. 109-119. [St-Amour 2013] St-Amour, Jean-François. "Rendering Assassin's Creed", Game Developers Conference, 2013.