SlideShare a Scribd company logo
1 of 59
Improving geometry culling for Deus Ex : Mankind
Divided
GDC 2016
Otso Mäkinen Sampo
Lappalainen
Nicolas Trudel
100 GB
MANUAL WORK FROM
EXPERTS
100 MB
WHY UMBRA?
BETTER
FRAME RATES
LARGER AND
MORE DETAILED
LEVELS
AUTOMATES
MANUAL WORK
ALL PLATFORMS
OCCLUSION CULLING
UMBRA OCCLUSION CULLING OVERVIEW
POLYGON SOUP VISIBLE OBJECTS
Pre-process Visibility
query
SPATIAL DATABASE
Glossary
Object types
Occluder
Target
Gate
Volume
Tome
Umbra’s spatial database
POLYGON SOUP
VOXELS
CELLS AND PORTALS
VISIBILITY QUERY
Rasterize portal graph
OCCLUSION BUFFER
RAYCAST & SPATIAL CONNECTIVITY
Raycast
AI spatial awareness
Spawn locations
Audio occlusion
Spatial connectivity
Topological distance
Scripted event activation
Audio propagation
IMPROVING GEOMETRY CULLING
Eidos-Montreal Studio
14
History
 Founded in 2007
 Located in…you guessed it!
 Focus on mature AAA games
 Games developed
 Deus Ex: Human Revolution (2011)
 Tomb Raider (2013) – Multiplayer Mode
 Thief (2014)
 Rise of the Tomb Raider (2015) – Co-developer
 Deus Ex : Mankind Divided
 Labs department : R&D tech for multiple studios/games
v
IMPROVING GEOMETRY CULLING
Dawn Engine
Evolution of technology
 Heavily modified version of IO Interactive’s Glacier™ 2 engine
 Tailored for the needs of Deus Ex franchise
 Middlewares used:
 Umbra
 PhysX
 APEX
 Bink
 Scaleform
 FMOD
 Nav Power
v
IMPROVING GEOMETRY CULLING
Dawn Engine - Rendering v
Tiled lighting
 Deferred lighting for opaque
 Forward lighting for transparent
Temporal anti-aliasing
 fixes a lot of the specular flickering, and smooth out smaller details
in objects
Temporal ambient occlusion
 Also gave us the best results. Computing ambient occlusion half
res, then upsampling over multiple frames
Visuals Examples
Copyright © 2016 Square Enix & Eidos-Montreal. All Rights Reserved
Example Scene
WITHOUT TAA
Example Scene
WITH TAA
Example Scene
SSAO
IMPROVING GEOMETRY CULLING
Dawn Engine - Rendering
Reflection
 Using SSR with localized cubemaps
Global illumination
 No lightmaps
 Baking data with spherical harmonics
 Per pixel lighting for opaque
 1 probe per object for transparent
 Probes placement: multi-levels, variable density
v
IMPROVING GEOMETRY CULLING 22
Dawn Engine - Rendering v
Hair
 Developed by Labs
 Improved Version of TressFX (see GDC 2015 Presentation)
IMPROVING GEOMETRY CULLING
IMPROVING GEOMETRY CULLING
Deus Ex : Mankind Divided
Game Information
 Release date: August 23rd, 2016
 Urban areas, both indoor and outdoor
 Artistic vision: create a tangible anticipation, as much with our
lighting & material process, as with crafting highly cluttered
environments
 Our biggest level is 1 km2, 300M polys
v
IMPROVING GEOMETRY CULLING
Occlusion Culling
Before using Umbra
 Placement of portals by hand
 Too tedious for map sizes
 Difficult to know where to place portals
 Fallback on frustum culling
Motivations for another method
 Automation
 Faster queries
v
IMPROVING GEOMETRY CULLING
Tools
 Umbra parameters, adjustable per scene
 By default, whole scene taken into account
vIntegrating Umbra in Dawn Engine
IMPROVING GEOMETRY CULLING 27
Tools
 Regions of interest (view volumes)
vIntegrating Umbra in Dawn Engine
IMPROVING GEOMETRY CULLING 28
Tools
 Regions of interest
 Usage of volumes
 Allows to adjust parameters for a particular region
 Visibility options on objects
 Static
 Occluder
 Occluder only
 Dynamic
 Baking
 In-editor or standalone
 Automatized by build machines
 Baking time: ~20 minutes
vIntegrating Umbra in Dawn Engine
IMPROVING GEOMETRY CULLING 29
Tools
 Baking
 One tome per scene: no streaming
 Except one level split in two
 Umbra scene and tome data between 15-50 mb
 Had to create unique ID per object
 Transparent objects (objects with at least one transparent
material)
 How to keep one unique ID per object?
 Add opaque primitives with object ID == 0, as occluders
 Add all primitives with unique object ID, as targets
vIntegrating Umbra in Dawn Engine
IMPROVING GEOMETRY CULLING
Runtime
 Portal Queries
 Main camera
 Shadow maps: most of our lights are static
 Water reflection
 Rain accessibility
 Some post filters
vIntegrating Umbra in Dawn Engine
IMPROVING GEOMETRY CULLING
Runtime
 Occlusion buffers
 Generated from queries on static entities
 Then used to accelerate queries for dynamic entities
 Cache
 Used for camera independent queries
 Client gives a cache ID
 The cache is composed of
 Pointer to occlusion buffer
 List of visible nodes
 Invalidate cache when:
 Registering static entities (could be optimized)
 Shadow caster data changes (mostly editor)
vIntegrating Umbra in Dawn Engine
IMPROVING GEOMETRY CULLING
Integrating Umbra in Dawn Engine
Cache
Client Client Client
Umbra
Static Query Static Query
Static Query
DynamicQuery
(object grid and occlusion buffer)
Client
IMPROVING GEOMETRY CULLING
Runtime
 Dynamic objects
 Octree used to store them
 Occlusion buffer used to determine visible cells
 If cell visible, test on objects
 When no occlusion buffer
 Same done, but with frustum test
 Octree also used for static objects not registered to Umbra
 Sky domes, vistas
vIntegrating Umbra in Dawn Engine
IMPROVING GEOMETRY CULLING
Runtime
 Parallelism
 Portal queries are split in 4 jobs
 Result is merged
 Object list
 Occlusion buffer
Global illumination
 Baking offline
 Hundreds of thousands of probes
 First, simple frustum test
 Could not use portal queries
 Umbra frustum queries improved bake time
vIntegrating Umbra in Dawn Engine
IMPROVING GEOMETRY CULLING
Integrating Umbra in Dawn Engine
DEBUGGING TOOLS
IMPROVING GEOMETRY CULLING
Frozen Culling - Frustum
DEBUGGING TOOLS
IMPROVING GEOMETRY CULLING
Frozen Culling - Umbra
DEBUGGING TOOLS
IMPROVING GEOMETRY CULLING
Challenges
 Umbra integrated when lots of assets were already created
 At first, too many objects were tagged occluder
 Reduced tome size by half
 Reduced bake time by half
 Sometimes difficult to determine if occluder or not
 Context dependent
vIntegrating Umbra in Dawn Engine
IMPROVING GEOMETRY CULLING
CHALLENGES
IMPROVING GEOMETRY CULLING
CHALLENGES
IMPROVING GEOMETRY CULLING
Challenges
 Voxelization settings
 Trade-off between performance/memory and result
 Lots of small holes in some maps
 Reducing detail in lots of sections => micro manage volumes to
increase detail
 Air vents
 Usage of occluder only
vIntegrating Umbra in Dawn Engine
IMPROVING GEOMETRY CULLING
CHALLENGES
IMPROVING GEOMETRY CULLING
BENCHMARKS
IMPROVING GEOMETRY CULLING
BENCHMARKS
IMPROVING GEOMETRY CULLING
 Simple frustum culling:
 6 fps
 6200 draw calls
 With Umbra:
 30 fps
 2600 draw calls
 Queries (typical frame)
 Main Camera: 4ms (static: 2ms, dynamic: 2ms)
 Shadow Casters : 1.4ms (7 shadows casters,
dynamic)
v
IMPROVING GEOMETRY CULLING
PS4 Benchmarks
IMPROVING GEOMETRY CULLING
Improvements
46
 Bake part of the scene
 Have a kind of level of detail for voxelization
 Have volumes to exclude voxelization data
 Be able to see the voxelization
v
IMPROVING GEOMETRY CULLING
Eidos-Montréal is hiring
Eidos-Montréal is always looking for the best talent.
At Eidos-Montréal, you'll find a team of talented and
passionate people who aim for the best and are
determined to achieve their goals.
v www.eidosmontreal.com
IMPROVING GEOMETRY CULLING
Any 3D Content, Any Device
FEATURES
FASTER
PRE-PROCESS
IMPROVED
CULLING
MORE ROBUST – LESS
TWEAKING
UMBRA 3.4
soon
OCCLUSION
CULLING
SPATIAL
CONNECTIVITY
RAYCAST
QUERY
UMBRA 3.3
now
VISIBILITY-BASED
3D STREAMING AND
OPTIMIZATION
UMBRA 4.0
Q3–Q4
4.0 Overview
Streaming and Rendering of Large 3D Worlds
It all starts with the user
(e.g. game designer) creating 3D worlds.
How It Works
With their tool of choice (Unity, Unreal etc.),
they can “umbrafy” these worlds.
This means that they are sent to
the Umbra Cloud...
...or the Umbra Optimizer on
a local computer.
Umbra then
automatically
restructures
the data...
... and creates an
optimized database
that is stored
locally or in the
Umbra Cloud.
When the game,
is running,
Umbra will...
...tell what to
render next with
3D content
streaming
...report what
is visible with
occlusion culling
...define which
version of assets
to use (level
of detail)
Questions & Answers
Thank you for your time & see you next year.

More Related Content

What's hot

A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3
guest11b095
 
A Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingA Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time Lighting
Steven Tovey
 
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
 
Deferred shading
Deferred shadingDeferred shading
Deferred shading
Frank Chao
 

What's hot (20)

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...
 
Frostbite on Mobile
Frostbite on MobileFrostbite on Mobile
Frostbite on Mobile
 
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
 
GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins
GDC 2014 - Deformable Snow Rendering in Batman: Arkham OriginsGDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins
GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins
 
Star Ocean 4 - Flexible Shader Managment and Post-processing
Star Ocean 4 - Flexible Shader Managment and Post-processingStar Ocean 4 - Flexible Shader Managment and Post-processing
Star Ocean 4 - Flexible Shader Managment and Post-processing
 
A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3
 
A Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingA Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time Lighting
 
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
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)
 
Lighting you up in Battlefield 3
Lighting you up in Battlefield 3Lighting you up in Battlefield 3
Lighting you up in Battlefield 3
 
The Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next StepsThe Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next Steps
 
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
 
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 ...
 
Optimizing the graphics pipeline with compute
Optimizing the graphics pipeline with computeOptimizing the graphics pipeline with compute
Optimizing the graphics pipeline with compute
 
Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3
 
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
 
Advanced Real-time Post-Processing using GPGPU techniques
Advanced Real-time Post-Processing using GPGPU techniquesAdvanced Real-time Post-Processing using GPGPU techniques
Advanced Real-time Post-Processing using GPGPU techniques
 
Deferred shading
Deferred shadingDeferred shading
Deferred shading
 
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
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars Battlefront
 

Similar to GDC16: Improving geometry culling for Deus Ex: Mankind Divided by Nicolas Trudel

565 Alpha Chun-Fu Chao
565 Alpha Chun-Fu Chao565 Alpha Chun-Fu Chao
565 Alpha Chun-Fu Chao
Frank Chao
 
Introduction To Massive Model Visualization
Introduction To Massive Model VisualizationIntroduction To Massive Model Visualization
Introduction To Massive Model Visualization
pjcozzi
 
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
Thomas Goddard
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Johan Andersson
 

Similar to GDC16: Improving geometry culling for Deus Ex: Mankind Divided by Nicolas Trudel (20)

Visibility Optimization for Games
Visibility Optimization for GamesVisibility Optimization for Games
Visibility Optimization for Games
 
Visibility Optimization for Games
Visibility Optimization for GamesVisibility Optimization for Games
Visibility Optimization for Games
 
Umbra 3 IGDA & Unity Presentation
Umbra 3 IGDA & Unity PresentationUmbra 3 IGDA & Unity Presentation
Umbra 3 IGDA & Unity Presentation
 
Umbra 3 & Unity 3.5 - IGDA Helsinki 2012
Umbra 3 & Unity 3.5 - IGDA Helsinki 2012Umbra 3 & Unity 3.5 - IGDA Helsinki 2012
Umbra 3 & Unity 3.5 - IGDA Helsinki 2012
 
Siggraph 2011: Occlusion culling in Alan Wake
Siggraph 2011: Occlusion culling in Alan WakeSiggraph 2011: Occlusion culling in Alan Wake
Siggraph 2011: Occlusion culling in Alan Wake
 
Advanced Lighting for Interactive Applications
Advanced Lighting for Interactive ApplicationsAdvanced Lighting for Interactive Applications
Advanced Lighting for Interactive Applications
 
565 Alpha Chun-Fu Chao
565 Alpha Chun-Fu Chao565 Alpha Chun-Fu Chao
565 Alpha Chun-Fu Chao
 
NERC Presentation
NERC PresentationNERC Presentation
NERC Presentation
 
Unite 2013 optimizing unity games for mobile platforms
Unite 2013 optimizing unity games for mobile platformsUnite 2013 optimizing unity games for mobile platforms
Unite 2013 optimizing unity games for mobile platforms
 
WebXR and Browsers
WebXR and BrowsersWebXR and Browsers
WebXR and Browsers
 
Introduction To Massive Model Visualization
Introduction To Massive Model VisualizationIntroduction To Massive Model Visualization
Introduction To Massive Model Visualization
 
Advanced Game Development with the Mobile 3D Graphics API
Advanced Game Development with the Mobile 3D Graphics APIAdvanced Game Development with the Mobile 3D Graphics API
Advanced Game Development with the Mobile 3D Graphics API
 
HTML5DevConf - Unleash the power of 3D with babylon.js
HTML5DevConf - Unleash the power of 3D with babylon.jsHTML5DevConf - Unleash the power of 3D with babylon.js
HTML5DevConf - Unleash the power of 3D with babylon.js
 
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
 
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
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
 
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
 
FlameWorks GTC 2014
FlameWorks GTC 2014FlameWorks GTC 2014
FlameWorks GTC 2014
 
Unleash 3D rendering with WebGL and Microsoft Edge
Unleash 3D rendering with WebGL and Microsoft EdgeUnleash 3D rendering with WebGL and Microsoft Edge
Unleash 3D rendering with WebGL and Microsoft Edge
 

More from Umbra Software

More from Umbra Software (8)

GDC2014: Boosting your ARM mobile 3D rendering performance with Umbra
GDC2014: Boosting your ARM mobile 3D rendering performance with Umbra GDC2014: Boosting your ARM mobile 3D rendering performance with Umbra
GDC2014: Boosting your ARM mobile 3D rendering performance with Umbra
 
Umbra Ignite 2015: – Remy Chinchilla & Kevin Cerdà AAA indie production for ...
Umbra Ignite 2015: –  Remy Chinchilla & Kevin Cerdà AAA indie production for ...Umbra Ignite 2015: –  Remy Chinchilla & Kevin Cerdà AAA indie production for ...
Umbra Ignite 2015: – Remy Chinchilla & Kevin Cerdà AAA indie production for ...
 
Umbra Ignite 2015: Balázs Török – The blanket that’s always too short
Umbra Ignite 2015: Balázs Török – The blanket that’s always too shortUmbra Ignite 2015: Balázs Török – The blanket that’s always too short
Umbra Ignite 2015: Balázs Török – The blanket that’s always too short
 
Umbra Ignite 2015: Rulon Raymond – The State of Skinning – a dive into modern...
Umbra Ignite 2015: Rulon Raymond – The State of Skinning – a dive into modern...Umbra Ignite 2015: Rulon Raymond – The State of Skinning – a dive into modern...
Umbra Ignite 2015: Rulon Raymond – The State of Skinning – a dive into modern...
 
Umbra Ignite 2015: Thor Gunnarsson & Reynir Hardarson – Nailing AAA quality i...
Umbra Ignite 2015: Thor Gunnarsson & Reynir Hardarson – Nailing AAA quality i...Umbra Ignite 2015: Thor Gunnarsson & Reynir Hardarson – Nailing AAA quality i...
Umbra Ignite 2015: Thor Gunnarsson & Reynir Hardarson – Nailing AAA quality i...
 
Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...
Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...
Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...
 
Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
 
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
 

Recently uploaded

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
 
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
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
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
 

Recently uploaded (20)

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
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
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
 
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
 
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
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
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
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
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
 
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
 
"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 ...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 

GDC16: Improving geometry culling for Deus Ex: Mankind Divided by Nicolas Trudel

  • 1. Improving geometry culling for Deus Ex : Mankind Divided GDC 2016 Otso Mäkinen Sampo Lappalainen Nicolas Trudel
  • 2.
  • 3. 100 GB MANUAL WORK FROM EXPERTS 100 MB
  • 4. WHY UMBRA? BETTER FRAME RATES LARGER AND MORE DETAILED LEVELS AUTOMATES MANUAL WORK ALL PLATFORMS
  • 6. UMBRA OCCLUSION CULLING OVERVIEW POLYGON SOUP VISIBLE OBJECTS Pre-process Visibility query SPATIAL DATABASE
  • 13. RAYCAST & SPATIAL CONNECTIVITY Raycast AI spatial awareness Spawn locations Audio occlusion Spatial connectivity Topological distance Scripted event activation Audio propagation
  • 14. IMPROVING GEOMETRY CULLING Eidos-Montreal Studio 14 History  Founded in 2007  Located in…you guessed it!  Focus on mature AAA games  Games developed  Deus Ex: Human Revolution (2011)  Tomb Raider (2013) – Multiplayer Mode  Thief (2014)  Rise of the Tomb Raider (2015) – Co-developer  Deus Ex : Mankind Divided  Labs department : R&D tech for multiple studios/games v
  • 15. IMPROVING GEOMETRY CULLING Dawn Engine Evolution of technology  Heavily modified version of IO Interactive’s Glacier™ 2 engine  Tailored for the needs of Deus Ex franchise  Middlewares used:  Umbra  PhysX  APEX  Bink  Scaleform  FMOD  Nav Power v
  • 16. IMPROVING GEOMETRY CULLING Dawn Engine - Rendering v Tiled lighting  Deferred lighting for opaque  Forward lighting for transparent Temporal anti-aliasing  fixes a lot of the specular flickering, and smooth out smaller details in objects Temporal ambient occlusion  Also gave us the best results. Computing ambient occlusion half res, then upsampling over multiple frames
  • 17. Visuals Examples Copyright © 2016 Square Enix & Eidos-Montreal. All Rights Reserved
  • 21. IMPROVING GEOMETRY CULLING Dawn Engine - Rendering Reflection  Using SSR with localized cubemaps Global illumination  No lightmaps  Baking data with spherical harmonics  Per pixel lighting for opaque  1 probe per object for transparent  Probes placement: multi-levels, variable density v
  • 22. IMPROVING GEOMETRY CULLING 22 Dawn Engine - Rendering v Hair  Developed by Labs  Improved Version of TressFX (see GDC 2015 Presentation)
  • 24. IMPROVING GEOMETRY CULLING Deus Ex : Mankind Divided Game Information  Release date: August 23rd, 2016  Urban areas, both indoor and outdoor  Artistic vision: create a tangible anticipation, as much with our lighting & material process, as with crafting highly cluttered environments  Our biggest level is 1 km2, 300M polys v
  • 25. IMPROVING GEOMETRY CULLING Occlusion Culling Before using Umbra  Placement of portals by hand  Too tedious for map sizes  Difficult to know where to place portals  Fallback on frustum culling Motivations for another method  Automation  Faster queries v
  • 26. IMPROVING GEOMETRY CULLING Tools  Umbra parameters, adjustable per scene  By default, whole scene taken into account vIntegrating Umbra in Dawn Engine
  • 27. IMPROVING GEOMETRY CULLING 27 Tools  Regions of interest (view volumes) vIntegrating Umbra in Dawn Engine
  • 28. IMPROVING GEOMETRY CULLING 28 Tools  Regions of interest  Usage of volumes  Allows to adjust parameters for a particular region  Visibility options on objects  Static  Occluder  Occluder only  Dynamic  Baking  In-editor or standalone  Automatized by build machines  Baking time: ~20 minutes vIntegrating Umbra in Dawn Engine
  • 29. IMPROVING GEOMETRY CULLING 29 Tools  Baking  One tome per scene: no streaming  Except one level split in two  Umbra scene and tome data between 15-50 mb  Had to create unique ID per object  Transparent objects (objects with at least one transparent material)  How to keep one unique ID per object?  Add opaque primitives with object ID == 0, as occluders  Add all primitives with unique object ID, as targets vIntegrating Umbra in Dawn Engine
  • 30. IMPROVING GEOMETRY CULLING Runtime  Portal Queries  Main camera  Shadow maps: most of our lights are static  Water reflection  Rain accessibility  Some post filters vIntegrating Umbra in Dawn Engine
  • 31. IMPROVING GEOMETRY CULLING Runtime  Occlusion buffers  Generated from queries on static entities  Then used to accelerate queries for dynamic entities  Cache  Used for camera independent queries  Client gives a cache ID  The cache is composed of  Pointer to occlusion buffer  List of visible nodes  Invalidate cache when:  Registering static entities (could be optimized)  Shadow caster data changes (mostly editor) vIntegrating Umbra in Dawn Engine
  • 32. IMPROVING GEOMETRY CULLING Integrating Umbra in Dawn Engine Cache Client Client Client Umbra Static Query Static Query Static Query DynamicQuery (object grid and occlusion buffer) Client
  • 33. IMPROVING GEOMETRY CULLING Runtime  Dynamic objects  Octree used to store them  Occlusion buffer used to determine visible cells  If cell visible, test on objects  When no occlusion buffer  Same done, but with frustum test  Octree also used for static objects not registered to Umbra  Sky domes, vistas vIntegrating Umbra in Dawn Engine
  • 34. IMPROVING GEOMETRY CULLING Runtime  Parallelism  Portal queries are split in 4 jobs  Result is merged  Object list  Occlusion buffer Global illumination  Baking offline  Hundreds of thousands of probes  First, simple frustum test  Could not use portal queries  Umbra frustum queries improved bake time vIntegrating Umbra in Dawn Engine
  • 35. IMPROVING GEOMETRY CULLING Integrating Umbra in Dawn Engine DEBUGGING TOOLS
  • 36. IMPROVING GEOMETRY CULLING Frozen Culling - Frustum DEBUGGING TOOLS
  • 37. IMPROVING GEOMETRY CULLING Frozen Culling - Umbra DEBUGGING TOOLS
  • 38. IMPROVING GEOMETRY CULLING Challenges  Umbra integrated when lots of assets were already created  At first, too many objects were tagged occluder  Reduced tome size by half  Reduced bake time by half  Sometimes difficult to determine if occluder or not  Context dependent vIntegrating Umbra in Dawn Engine
  • 41. IMPROVING GEOMETRY CULLING Challenges  Voxelization settings  Trade-off between performance/memory and result  Lots of small holes in some maps  Reducing detail in lots of sections => micro manage volumes to increase detail  Air vents  Usage of occluder only vIntegrating Umbra in Dawn Engine
  • 45. IMPROVING GEOMETRY CULLING  Simple frustum culling:  6 fps  6200 draw calls  With Umbra:  30 fps  2600 draw calls  Queries (typical frame)  Main Camera: 4ms (static: 2ms, dynamic: 2ms)  Shadow Casters : 1.4ms (7 shadows casters, dynamic) v IMPROVING GEOMETRY CULLING PS4 Benchmarks
  • 46. IMPROVING GEOMETRY CULLING Improvements 46  Bake part of the scene  Have a kind of level of detail for voxelization  Have volumes to exclude voxelization data  Be able to see the voxelization v
  • 47. IMPROVING GEOMETRY CULLING Eidos-Montréal is hiring Eidos-Montréal is always looking for the best talent. At Eidos-Montréal, you'll find a team of talented and passionate people who aim for the best and are determined to achieve their goals. v www.eidosmontreal.com
  • 48. IMPROVING GEOMETRY CULLING Any 3D Content, Any Device
  • 49. FEATURES FASTER PRE-PROCESS IMPROVED CULLING MORE ROBUST – LESS TWEAKING UMBRA 3.4 soon OCCLUSION CULLING SPATIAL CONNECTIVITY RAYCAST QUERY UMBRA 3.3 now VISIBILITY-BASED 3D STREAMING AND OPTIMIZATION UMBRA 4.0 Q3–Q4
  • 50.
  • 51.
  • 53.
  • 54. Streaming and Rendering of Large 3D Worlds
  • 55. It all starts with the user (e.g. game designer) creating 3D worlds. How It Works
  • 56. With their tool of choice (Unity, Unreal etc.), they can “umbrafy” these worlds. This means that they are sent to the Umbra Cloud... ...or the Umbra Optimizer on a local computer.
  • 57. Umbra then automatically restructures the data... ... and creates an optimized database that is stored locally or in the Umbra Cloud.
  • 58. When the game, is running, Umbra will... ...tell what to render next with 3D content streaming ...report what is visible with occlusion culling ...define which version of assets to use (level of detail)
  • 59. Questions & Answers Thank you for your time & see you next year.

Editor's Notes

  1. Current solutions require a lot of manual work and ad-hoc methods to optimize the content to be consumed without signifacant lag or delay. It is also very time consuming thus expensive and still doesn’t scale up to large 3D models. Existing solution is to use ad-hoc methods and hand optimization to figure out which part of content is transmitted. This requires special skills, is very time consuming and expensive, and does not scale to large 3D models. <BRIDGE> That’s why Umbra is now expanding it’s expertise in gaming to other industries as well to provide solutions to these challenges we’ve talked about. I’m very proud to introduce The Umbra Cloud
  2. UP NEXT: SHOW LIVE DEMO FROM FAKE / SIDE BY SIDE COMPARISON