Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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
Topologic...
IMPROVING GEOMETRY CULLING
Eidos-Montreal Studio
14
History
 Founded in 2007
 Located in…you guessed it!
 Focus on matu...
IMPROVING GEOMETRY CULLING
Dawn Engine
Evolution of technology
 Heavily modified version of IO Interactive’s Glacier™ 2 e...
IMPROVING GEOMETRY CULLING
Dawn Engine - Rendering v
Tiled lighting
 Deferred lighting for opaque
 Forward lighting for ...
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...
IMPROVING GEOMETRY CULLING 22
Dawn Engine - Rendering v
Hair
 Developed by Labs
 Improved Version of TressFX (see GDC 20...
IMPROVING GEOMETRY CULLING
IMPROVING GEOMETRY CULLING
Deus Ex : Mankind Divided
Game Information
 Release date: August 23rd, 2016
 Urban areas, bot...
IMPROVING GEOMETRY CULLING
Occlusion Culling
Before using Umbra
 Placement of portals by hand
 Too tedious for map sizes...
IMPROVING GEOMETRY CULLING
Tools
 Umbra parameters, adjustable per scene
 By default, whole scene taken into account
vIn...
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 particula...
IMPROVING GEOMETRY CULLING 29
Tools
 Baking
 One tome per scene: no streaming
 Except one level split in two
 Umbra sc...
IMPROVING GEOMETRY CULLING
Runtime
 Portal Queries
 Main camera
 Shadow maps: most of our lights are static
 Water ref...
IMPROVING GEOMETRY CULLING
Runtime
 Occlusion buffers
 Generated from queries on static entities
 Then used to accelera...
IMPROVING GEOMETRY CULLING
Integrating Umbra in Dawn Engine
Cache
Client Client Client
Umbra
Static Query Static Query
Sta...
IMPROVING GEOMETRY CULLING
Runtime
 Dynamic objects
 Octree used to store them
 Occlusion buffer used to determine visi...
IMPROVING GEOMETRY CULLING
Runtime
 Parallelism
 Portal queries are split in 4 jobs
 Result is merged
 Object list
 O...
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 obj...
IMPROVING GEOMETRY CULLING
CHALLENGES
IMPROVING GEOMETRY CULLING
CHALLENGES
IMPROVING GEOMETRY CULLING
Challenges
 Voxelization settings
 Trade-off between performance/memory and result
 Lots of ...
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
 ...
IMPROVING GEOMETRY CULLING
Improvements
46
 Bake part of the scene
 Have a kind of level of detail for voxelization
 Ha...
IMPROVING GEOMETRY CULLING
Eidos-Montréal is hiring
Eidos-Montréal is always looking for the best talent.
At Eidos-Montréa...
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
CONNECTI...
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 Umbr...
Umbra then
automatically
restructures
the data...
... and creates an
optimized database
that is stored
locally or in the
U...
When the game,
is running,
Umbra will...
...tell what to
render next with
3D content
streaming
...report what
is visible w...
Questions & Answers
Thank you for your time & see you next year.
GDC16: Improving geometry culling for Deus Ex: Mankind Divided by Nicolas Trudel
GDC16: Improving geometry culling for Deus Ex: Mankind Divided by Nicolas Trudel
GDC16: Improving geometry culling for Deus Ex: Mankind Divided by Nicolas Trudel
GDC16: Improving geometry culling for Deus Ex: Mankind Divided by Nicolas Trudel
Upcoming SlideShare
Loading in …5
×

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

3,042 views

Published on

In this presentation Nicolas Trudel, a Graphics Programmer from Eidos-Montréal describes how they integrated Umbra in their custom made Dawn Engine to improve geometry culling for their latest game. Slides also include a short description of Umbra in general for Sampo Lappalainen, and also a future roadmap from the company's CEO Otso Mäkinen.

Published in: Technology
  • Be the first to comment

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

  1. 1. Improving geometry culling for Deus Ex : Mankind Divided GDC 2016 Otso Mäkinen Sampo Lappalainen Nicolas Trudel
  2. 2. 100 GB MANUAL WORK FROM EXPERTS 100 MB
  3. 3. WHY UMBRA? BETTER FRAME RATES LARGER AND MORE DETAILED LEVELS AUTOMATES MANUAL WORK ALL PLATFORMS
  4. 4. OCCLUSION CULLING
  5. 5. UMBRA OCCLUSION CULLING OVERVIEW POLYGON SOUP VISIBLE OBJECTS Pre-process Visibility query SPATIAL DATABASE
  6. 6. Glossary Object types Occluder Target Gate Volume Tome Umbra’s spatial database
  7. 7. POLYGON SOUP
  8. 8. VOXELS
  9. 9. CELLS AND PORTALS
  10. 10. VISIBILITY QUERY Rasterize portal graph
  11. 11. OCCLUSION BUFFER
  12. 12. RAYCAST & SPATIAL CONNECTIVITY Raycast AI spatial awareness Spawn locations Audio occlusion Spatial connectivity Topological distance Scripted event activation Audio propagation
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. Visuals Examples Copyright © 2016 Square Enix & Eidos-Montreal. All Rights Reserved
  17. 17. Example Scene WITHOUT TAA
  18. 18. Example Scene WITH TAA
  19. 19. Example Scene SSAO
  20. 20. 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
  21. 21. IMPROVING GEOMETRY CULLING 22 Dawn Engine - Rendering v Hair  Developed by Labs  Improved Version of TressFX (see GDC 2015 Presentation)
  22. 22. IMPROVING GEOMETRY CULLING
  23. 23. 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
  24. 24. 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
  25. 25. IMPROVING GEOMETRY CULLING Tools  Umbra parameters, adjustable per scene  By default, whole scene taken into account vIntegrating Umbra in Dawn Engine
  26. 26. IMPROVING GEOMETRY CULLING 27 Tools  Regions of interest (view volumes) vIntegrating Umbra in Dawn Engine
  27. 27. 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
  28. 28. 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
  29. 29. 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
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. IMPROVING GEOMETRY CULLING Integrating Umbra in Dawn Engine DEBUGGING TOOLS
  35. 35. IMPROVING GEOMETRY CULLING Frozen Culling - Frustum DEBUGGING TOOLS
  36. 36. IMPROVING GEOMETRY CULLING Frozen Culling - Umbra DEBUGGING TOOLS
  37. 37. 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
  38. 38. IMPROVING GEOMETRY CULLING CHALLENGES
  39. 39. IMPROVING GEOMETRY CULLING CHALLENGES
  40. 40. 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
  41. 41. IMPROVING GEOMETRY CULLING CHALLENGES
  42. 42. IMPROVING GEOMETRY CULLING BENCHMARKS
  43. 43. IMPROVING GEOMETRY CULLING BENCHMARKS
  44. 44. 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
  45. 45. 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
  46. 46. 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
  47. 47. IMPROVING GEOMETRY CULLING Any 3D Content, Any Device
  48. 48. 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
  49. 49. 4.0 Overview
  50. 50. Streaming and Rendering of Large 3D Worlds
  51. 51. It all starts with the user (e.g. game designer) creating 3D worlds. How It Works
  52. 52. 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.
  53. 53. Umbra then automatically restructures the data... ... and creates an optimized database that is stored locally or in the Umbra Cloud.
  54. 54. 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)
  55. 55. Questions & Answers Thank you for your time & see you next year.

×