SlideShare a Scribd company logo
1 of 65
Solving Visibility and
Streaming in The Witcher 3:
Wild Hunt with Umbra 3
Jasin Bushnaief, Umbra Software
Przemysław Czatrowski, CD Projekt RED
Agenda
INTRODUCTION
UMBRA 3 OVERVIEW
THE WITCHER 3 REQUIREMENTS
MIDDLEWARE AND THE REDEngine 3
UMBRA 3 IN REDEngine 3
3
UMBRA
SOFTWARE
OCCLUSION CULLING MIDDLEWARE FOR 3D
GAMES
FOUNDED IN 2007
14 EMPLOYEES
BASED IN HELSINKI, FINLAND
SUPPORT OFFICE IN SEATTLE, WA
“Level artists are there to fill the
world with content. Integrating Umbra saved
us not only artist time but the time to create
and maintain an efficient visibility culling
solution. Umbra’s support provides us with the
solutions and features that we need.”
“Umbra’s technology is playing an important role
in the creation of our next universe, by freeing our artists
from the burden of manual markups typically associated
with polygon soup.”
Video games
powered by Umbra 3
Occlusion Culling
SO WHAT’S
ANYWAY?
UMBRA 3 OVERVIEW
POLYGON
SOUP
OCCLUSION
DATA
VISIBLE
OBJECTS
WHY LICENSE?
+ SAVE ENGINEERS’ TIME
+ SAVE ARTISTS’ TIME
+ IT’S EASY
+ PORTABLE
+ PROVEN
+ SUPPORT
- ENGINEERS
DON’T GET TO
ROLL THEIR
OWN 
The Witcher 3 Requirements
HOW TO SATISFY
IN UMBRA 3?
THE WITCHER 3
REQUIREMENTS
• LARGE, OPEN WORLD
→PVS, MANUAL STUFF OUT OF QUESTION
• UMBRA IS AUTOMATIC
• STREAMING
• LODs
POLYGON
SOUP
OCCLUSION
DATA
STREAMING IN UMBRA 3
STREAMING IN UMBRA 3
STREAMING IN UMBRA 3
STREAMING IN UMBRA 3
VISIBLE
OBJECTS
COMBINED
DATA
STREAMING CHALLENGES
• INDEPENDENT BLOCKS
• MATCH ON BORDERS
• DO IT QUICKLY!
LODs IN UMBRA 3
• PREVIOUSLY: SCENE CONSISTS OF
SINGLE OBJECT INSTANCES
• PROBLEMS:
– NEED MULTIPLE LOD LEVELS
– SELF-OCCLUSION BETWEEN LEVELS
– LOD HIERARCHIES?
LODs SOLVED
DISTANCE RANGE
LOD 0
LOD 1
LOD 2
LOD 3
Z = 0 Z = LIKE, A LOT
(OCCLUDER)
LOD CHALLENGES
• DISTANCE REFERENCE POINT
• OTHER CRITERIA FOR LOD
SELECTION
• SMARTER LOD OCCLUDERS
SOLVING VISIBILITY in REDengine 3 with UMBRA 3
ABOUT CD PROJEKT RED
• Located in Warsaw and Cracow, Poland
• Established in 2002
• Focused on RPGs
ABOUT CD PROJEKT RED
• The Witcher (2007)
• PC, heavily modified Aurora Engine
• The Witcher 2: Assasins of Kings (2011)
• PC, heavily modified Aurora Engine
• The Witcher 2: Assasins of Kings Enhanced Edition (2012)
• PC/X360, REDengine 2
• metacritics score: 88
SOLVING VISIBILITY in REDengine 3 with UMBRA 3
ABOUT CD PROJEKT RED
• The Witcher 3: Wild Hunt
• REDengine 3
• Releasing in February 2015
• PC/XBOX / PS4
• Cyberpunk 2077
• REDengine 3
• Release date TBD
SOLVING VISIBILITY in REDengine 3 with UMBRA 3
THE WITCHER 3: WILD HUNT
35x bigger than The Witcher 2
• open world
• complex streaming
• a lot of tools refactoring
• different approaches
Engine team:
• 16 people
SOLVING VISIBILITY in REDengine 3 with UMBRA 3
AGENDA
• Why middleware?
• Things we consider
• Umbra 3 as middleware for REDengine 3
• Integration process
• Editor features
• Cooker / data generation
• Game features
• Summary
SOLVING VISIBILITY in REDengine 3 with UMBRA 3
WHY MIDDLEWARE?
• Pros
• Too much time to provide own solutions
• Documentation
• Customer support
• Often access to source code
• Specific solutions for specific game
• Cons
• Evaluation time
• Pipeline modifications
• Code integrations
• Code not written by us
SOLVING VISIBILITY in REDengine 3 with UMBRA 3
WHY MIDDLEWARE?
• “Business” aspects
• Documentation – quality
• Customer support
• Changes to our pipeline
• Source / libs
• Technical aspects
• Changes to our pipeline
• Memory management
• Multithreading
• Amount of data to provide
• How it “fits” the engine
SOLVING VISIBILITY in REDengine 3 with UMBRA 3
WHY MIDDLEWARE?
• Middlewares that we use in the game
• Umbra 3
• PhysX
• APEX
• SpeedTree
• Wwise
• Scaleform
SOLVING VISIBILITY in REDengine 3 with UMBRA 3
UMBRA 3 AS A MIDDLEWARE
FOR REDengine 3
• Documentation
• Escription of the classes, methods and
concepts behind solutions
• basic tutorials
• Access to source code /
libraries
• Both
• Customer support
• Great
• Really short response time
• Precise answers and solution suggestions
• Changes in our pipeline
• From the artists’ point of view - none
SOLVING VISIBILITY in REDengine 3 with UMBRA 3
UMBRA 3 AS A MIDDLEWARE
FOR REDengine 3
• Memory management
• Ability to plug in your own allocator
• Multithreading
• Multithreaded building and querues
• Amount of data to provide
• Triangle soup
• No additional data created by artists
• Additional work
• Coming up with ID scheme
• Including occlusion culling in the
renderingpart
• Tools for building occlusion data
SOLVING VISIBILITY in REDengine 3 with UMBRA 3
Editor features
UMBRA 3 IN REDengine 3
UMBRA 3 IN REDengine 3
OCCLUSION DATA STREAMING
UMBRA 3 IN REDengine 3
OCCLUSION DATA STREAMING
1. From certain camera position required set of Tiles
is determined
2. If the newly determined set differs from the
currently used one, asynchronous computation starts
3. Precooked buffers are streamed in (only for Tiles,
that had no data streamed in yet)
4. Tome objects are created (only for Tiles that
haven’t had this object created yet)
5. Once all the Tomes exist, the TomeCollection
object is created from them
6. Newly created TomeCollection is sent to renderer
to replace the currently used one
7. Tiles that are no longer necessary destroy their
Tome object and unstream the precooked data
buffers. Previous TomeCollection object is destroyed.
UMBRA 3 IN REDengine 3
OCCLUSION DATA STREAMING
UMBRA 3 IN REDengine 3
OCCLUSION DATA STREAMING
UMBRA 3 IN REDengine 3
DEBUG TOOLS
• Quite a few in-engine tools
• Detachable camera
• Streaming visualizations
• Memory statistics
• Geometry statistics
• All visualizations that Umbra library gives us
SAMPLE SCENES
SAMPLE SCENES
SAMPLE SCENES
SAMPLE SCENES
SAMPLE SCENES
SAMPLE SCENES
SAMPLE SCENES
SAMPLE SCENES
SAMPLE SCENE
• 43 Tomes loaded
• 61 MB of Tome data loaded
• Additional 15 MB of inter-Tome
data generated on the fly
• Over 62000 static mesh chunks
on
scene
• Less than 500 visible (~0.76%)
• Query time: ~1.8 ms
• Dynamic objects occlusion:
• Particles
• Skinned meshes
• Simulated meshes
• Decals
DEBUG OVERLAY / STATISTICS
STATISTICS
STATISTICS
• Skellige
• Area size: 8km x 8km
• Amount of geometry: 45000-50000 chunks loaded
• Average amount of visible geometry: ~1-5%
• City of Novigrad
• Area size: 8.5km x 8.5km
• Amount of geometry: over 100k chunks loaded
• Average amount of visible geometry: ~2-5%
STATISTICS
• Size of Umbra data (cooked data + object IDs)
• Skellige: ~300 MB
• Novigrad: ~250 MB
• Size of data loaded during runtime
• Skellige: 40-80 MB
• Novigrad: 45-80 MB
COOKER / DATA GENERATION
COOKER / DATA GENERATION
• Offline process
• Data built more than once per day
• Dedicated machines (server farm)
COOKER / DATA GENERATION
• Ability to build data in the editor
COOKER / DATA GENERATION
Chunks – parts of the same mesh
COOKER / DATA GENERATION
• LOD levels
• Each has drawing distance
• Set up by artists
Data Generation:
• Gather mesh
• Gather LOD level
• Gather chunks
• Assign LOD distances
• Assign unique ID
COOKER / DATA GENERATION
Retrieving data during runtime:
• Query Umbra for IDs
• Find chunk
• Push chunk for drawing
• Only visible ones
• Proper LOD level
GAME FEATURES
GAME FEATURES
WE ARE HIRING!
Play your role in CD Projekt RED:
• An international team of talented developers and avid gamers.
• Creating complex, non-linear AAA RPGs.
• Developers of the award-winning Witcher franchise, with over 5million copies
sold.
• Currently working on The Witcher 3: Wild Hunt and Cyberpunk 2077.
APPLY NOW: www.cdpred.com
Thank you for attending.
For more on Umbra 3, go to umbra3.com
Follow us on Twitter
@jbushnaief, @cz0per, @umbrasoftware
WE ARE HIRING!

More Related Content

What's hot

Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemGuerrilla
 
Dissecting the Rendering of The Surge
Dissecting the Rendering of The SurgeDissecting the Rendering of The Surge
Dissecting the Rendering of The SurgePhilip Hammer
 
The Guerrilla Guide to Game Code
The Guerrilla Guide to Game CodeThe Guerrilla Guide to Game Code
The Guerrilla Guide to Game CodeGuerrilla
 
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunFive Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunElectronic Arts / DICE
 
Level Design Challenges & Solutions - Mirror's Edge
Level Design Challenges & Solutions - Mirror's EdgeLevel Design Challenges & Solutions - Mirror's Edge
Level Design Challenges & Solutions - Mirror's EdgeElectronic Arts / DICE
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The SurgeMichele Giacalone
 
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingDD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingElectronic Arts / DICE
 
Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Guerrilla
 
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 FieldsElectronic Arts / DICE
 
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
 
More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...
More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...
More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...Colin Barré-Brisebois
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Johan Andersson
 
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
 
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-processingumsl snfrzb
 
Player Traversal Mechanics in the Vast World of Horizon Zero Dawn
Player Traversal Mechanics in the Vast World of Horizon Zero DawnPlayer Traversal Mechanics in the Vast World of Horizon Zero Dawn
Player Traversal Mechanics in the Vast World of Horizon Zero DawnGuerrilla
 
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 3stevemcauley
 
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)Johan Andersson
 
CryENGINE 3 Rendering Techniques
CryENGINE 3 Rendering TechniquesCryENGINE 3 Rendering Techniques
CryENGINE 3 Rendering TechniquesTiago Sousa
 
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of GamesKillzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of GamesGuerrilla
 
Killzone's AI: Dynamic Procedural Tactics
Killzone's AI: Dynamic Procedural TacticsKillzone's AI: Dynamic Procedural Tactics
Killzone's AI: Dynamic Procedural TacticsGuerrilla
 

What's hot (20)

Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo Postmortem
 
Dissecting the Rendering of The Surge
Dissecting the Rendering of The SurgeDissecting the Rendering of The Surge
Dissecting the Rendering of The Surge
 
The Guerrilla Guide to Game Code
The Guerrilla Guide to Game CodeThe Guerrilla Guide to Game Code
The Guerrilla Guide to Game Code
 
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunFive Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
 
Level Design Challenges & Solutions - Mirror's Edge
Level Design Challenges & Solutions - Mirror's EdgeLevel Design Challenges & Solutions - Mirror's Edge
Level Design Challenges & Solutions - Mirror's Edge
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The Surge
 
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingDD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
 
Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2
 
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 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)
 
More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...
More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...
More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)
 
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
 
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
 
Player Traversal Mechanics in the Vast World of Horizon Zero Dawn
Player Traversal Mechanics in the Vast World of Horizon Zero DawnPlayer Traversal Mechanics in the Vast World of Horizon Zero Dawn
Player Traversal Mechanics in the Vast World of Horizon Zero Dawn
 
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
 
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
 
CryENGINE 3 Rendering Techniques
CryENGINE 3 Rendering TechniquesCryENGINE 3 Rendering Techniques
CryENGINE 3 Rendering Techniques
 
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of GamesKillzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
 
Killzone's AI: Dynamic Procedural Tactics
Killzone's AI: Dynamic Procedural TacticsKillzone's AI: Dynamic Procedural Tactics
Killzone's AI: Dynamic Procedural Tactics
 

Similar to Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3

Solving Visibility and Streaming in The Witcher 3: Wild Hunt with Umbra 3
Solving Visibility and Streaming in The Witcher 3: Wild Hunt with Umbra 3Solving Visibility and Streaming in The Witcher 3: Wild Hunt with Umbra 3
Solving Visibility and Streaming in The Witcher 3: Wild Hunt with Umbra 3jasinb
 
Hands-on with Umbra in Unity - Past, Present and the Future
Hands-on with Umbra in Unity - Past, Present and the FutureHands-on with Umbra in Unity - Past, Present and the Future
Hands-on with Umbra in Unity - Past, Present and the FutureSampo Lappalainen
 
Gpu with cuda architecture
Gpu with cuda architectureGpu with cuda architecture
Gpu with cuda architectureDhaval Kaneria
 
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...Unity Technologies
 
Analysis of KinectFusion
Analysis of KinectFusionAnalysis of KinectFusion
Analysis of KinectFusionDong-Won Shin
 
Write retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with AzureWrite retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with AzureMarco Parenzan
 
How to Make Norikra Perfect
How to Make Norikra PerfectHow to Make Norikra Perfect
How to Make Norikra PerfectSATOSHI TAGOMORI
 
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...Aritra Sarkar
 
La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...
La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...
La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...Sardegna Ricerche
 
Optimal Strategies for Large-Scale Batch ETL Jobs
Optimal Strategies for Large-Scale Batch ETL JobsOptimal Strategies for Large-Scale Batch ETL Jobs
Optimal Strategies for Large-Scale Batch ETL JobsEmma Tang
 
Optimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma TangOptimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma TangDatabricks
 
Developing Next-Generation Games with Stage3D (Molehill)
Developing Next-Generation Games with Stage3D (Molehill) Developing Next-Generation Games with Stage3D (Molehill)
Developing Next-Generation Games with Stage3D (Molehill) Jean-Philippe Doiron
 
OSMC 2009 | Implementing a large monitoring infrastructure with Nagios and Ga...
OSMC 2009 | Implementing a large monitoring infrastructure with Nagios and Ga...OSMC 2009 | Implementing a large monitoring infrastructure with Nagios and Ga...
OSMC 2009 | Implementing a large monitoring infrastructure with Nagios and Ga...NETWAYS
 
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...Daosheng Mu
 
Ai expo 2019
Ai expo 2019Ai expo 2019
Ai expo 2019Ben Weber
 
Visug: Say Hello to my little friend: a session on Kinect
Visug: Say Hello to my little friend: a session on KinectVisug: Say Hello to my little friend: a session on Kinect
Visug: Say Hello to my little friend: a session on KinectVisug
 
Using Riak for Events storage and analysis at Booking.com
Using Riak for Events storage and analysis at Booking.comUsing Riak for Events storage and analysis at Booking.com
Using Riak for Events storage and analysis at Booking.comDamien Krotkine
 

Similar to Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3 (20)

Solving Visibility and Streaming in The Witcher 3: Wild Hunt with Umbra 3
Solving Visibility and Streaming in The Witcher 3: Wild Hunt with Umbra 3Solving Visibility and Streaming in The Witcher 3: Wild Hunt with Umbra 3
Solving Visibility and Streaming in The Witcher 3: Wild Hunt with Umbra 3
 
Hands-on with Umbra in Unity - Past, Present and the Future
Hands-on with Umbra in Unity - Past, Present and the FutureHands-on with Umbra in Unity - Past, Present and the Future
Hands-on with Umbra in Unity - Past, Present and the Future
 
DigitalCreationLita
DigitalCreationLitaDigitalCreationLita
DigitalCreationLita
 
Gpu with cuda architecture
Gpu with cuda architectureGpu with cuda architecture
Gpu with cuda architecture
 
Collecting 600M events/day
Collecting 600M events/dayCollecting 600M events/day
Collecting 600M events/day
 
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
 
Analysis of KinectFusion
Analysis of KinectFusionAnalysis of KinectFusion
Analysis of KinectFusion
 
Write retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with AzureWrite retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with Azure
 
How to Make Norikra Perfect
How to Make Norikra PerfectHow to Make Norikra Perfect
How to Make Norikra Perfect
 
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
 
La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...
La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...
La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...
 
Optimal Strategies for Large-Scale Batch ETL Jobs
Optimal Strategies for Large-Scale Batch ETL JobsOptimal Strategies for Large-Scale Batch ETL Jobs
Optimal Strategies for Large-Scale Batch ETL Jobs
 
Optimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma TangOptimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
 
Developing Next-Generation Games with Stage3D (Molehill)
Developing Next-Generation Games with Stage3D (Molehill) Developing Next-Generation Games with Stage3D (Molehill)
Developing Next-Generation Games with Stage3D (Molehill)
 
OSMC 2009 | Implementing a large monitoring infrastructure with Nagios and Ga...
OSMC 2009 | Implementing a large monitoring infrastructure with Nagios and Ga...OSMC 2009 | Implementing a large monitoring infrastructure with Nagios and Ga...
OSMC 2009 | Implementing a large monitoring infrastructure with Nagios and Ga...
 
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
 
Ai expo 2019
Ai expo 2019Ai expo 2019
Ai expo 2019
 
Visug: Say Hello to my little friend: a session on Kinect
Visug: Say Hello to my little friend: a session on KinectVisug: Say Hello to my little friend: a session on Kinect
Visug: Say Hello to my little friend: a session on Kinect
 
Using Riak for Events storage and analysis at Booking.com
Using Riak for Events storage and analysis at Booking.comUsing Riak for Events storage and analysis at Booking.com
Using Riak for Events storage and analysis at Booking.com
 
Android performance
Android performanceAndroid performance
Android performance
 

Recently uploaded

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 

Recently uploaded (20)

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 

Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3

  • 1. Solving Visibility and Streaming in The Witcher 3: Wild Hunt with Umbra 3 Jasin Bushnaief, Umbra Software Przemysław Czatrowski, CD Projekt RED
  • 2. Agenda INTRODUCTION UMBRA 3 OVERVIEW THE WITCHER 3 REQUIREMENTS MIDDLEWARE AND THE REDEngine 3 UMBRA 3 IN REDEngine 3
  • 3. 3 UMBRA SOFTWARE OCCLUSION CULLING MIDDLEWARE FOR 3D GAMES FOUNDED IN 2007 14 EMPLOYEES BASED IN HELSINKI, FINLAND SUPPORT OFFICE IN SEATTLE, WA “Level artists are there to fill the world with content. Integrating Umbra saved us not only artist time but the time to create and maintain an efficient visibility culling solution. Umbra’s support provides us with the solutions and features that we need.” “Umbra’s technology is playing an important role in the creation of our next universe, by freeing our artists from the burden of manual markups typically associated with polygon soup.”
  • 5.
  • 6.
  • 7.
  • 8.
  • 10.
  • 12. WHY LICENSE? + SAVE ENGINEERS’ TIME + SAVE ARTISTS’ TIME + IT’S EASY + PORTABLE + PROVEN + SUPPORT - ENGINEERS DON’T GET TO ROLL THEIR OWN 
  • 13. The Witcher 3 Requirements HOW TO SATISFY IN UMBRA 3?
  • 14.
  • 15. THE WITCHER 3 REQUIREMENTS • LARGE, OPEN WORLD →PVS, MANUAL STUFF OUT OF QUESTION • UMBRA IS AUTOMATIC • STREAMING • LODs
  • 17.
  • 21. STREAMING IN UMBRA 3 VISIBLE OBJECTS COMBINED DATA
  • 22. STREAMING CHALLENGES • INDEPENDENT BLOCKS • MATCH ON BORDERS • DO IT QUICKLY!
  • 23. LODs IN UMBRA 3 • PREVIOUSLY: SCENE CONSISTS OF SINGLE OBJECT INSTANCES • PROBLEMS: – NEED MULTIPLE LOD LEVELS – SELF-OCCLUSION BETWEEN LEVELS – LOD HIERARCHIES?
  • 24. LODs SOLVED DISTANCE RANGE LOD 0 LOD 1 LOD 2 LOD 3 Z = 0 Z = LIKE, A LOT (OCCLUDER)
  • 25. LOD CHALLENGES • DISTANCE REFERENCE POINT • OTHER CRITERIA FOR LOD SELECTION • SMARTER LOD OCCLUDERS
  • 26. SOLVING VISIBILITY in REDengine 3 with UMBRA 3 ABOUT CD PROJEKT RED • Located in Warsaw and Cracow, Poland • Established in 2002 • Focused on RPGs
  • 27. ABOUT CD PROJEKT RED • The Witcher (2007) • PC, heavily modified Aurora Engine • The Witcher 2: Assasins of Kings (2011) • PC, heavily modified Aurora Engine • The Witcher 2: Assasins of Kings Enhanced Edition (2012) • PC/X360, REDengine 2 • metacritics score: 88 SOLVING VISIBILITY in REDengine 3 with UMBRA 3
  • 28. ABOUT CD PROJEKT RED • The Witcher 3: Wild Hunt • REDengine 3 • Releasing in February 2015 • PC/XBOX / PS4 • Cyberpunk 2077 • REDengine 3 • Release date TBD SOLVING VISIBILITY in REDengine 3 with UMBRA 3
  • 29. THE WITCHER 3: WILD HUNT 35x bigger than The Witcher 2 • open world • complex streaming • a lot of tools refactoring • different approaches Engine team: • 16 people SOLVING VISIBILITY in REDengine 3 with UMBRA 3
  • 30. AGENDA • Why middleware? • Things we consider • Umbra 3 as middleware for REDengine 3 • Integration process • Editor features • Cooker / data generation • Game features • Summary SOLVING VISIBILITY in REDengine 3 with UMBRA 3
  • 31. WHY MIDDLEWARE? • Pros • Too much time to provide own solutions • Documentation • Customer support • Often access to source code • Specific solutions for specific game • Cons • Evaluation time • Pipeline modifications • Code integrations • Code not written by us SOLVING VISIBILITY in REDengine 3 with UMBRA 3
  • 32. WHY MIDDLEWARE? • “Business” aspects • Documentation – quality • Customer support • Changes to our pipeline • Source / libs • Technical aspects • Changes to our pipeline • Memory management • Multithreading • Amount of data to provide • How it “fits” the engine SOLVING VISIBILITY in REDengine 3 with UMBRA 3
  • 33. WHY MIDDLEWARE? • Middlewares that we use in the game • Umbra 3 • PhysX • APEX • SpeedTree • Wwise • Scaleform SOLVING VISIBILITY in REDengine 3 with UMBRA 3
  • 34. UMBRA 3 AS A MIDDLEWARE FOR REDengine 3 • Documentation • Escription of the classes, methods and concepts behind solutions • basic tutorials • Access to source code / libraries • Both • Customer support • Great • Really short response time • Precise answers and solution suggestions • Changes in our pipeline • From the artists’ point of view - none SOLVING VISIBILITY in REDengine 3 with UMBRA 3
  • 35. UMBRA 3 AS A MIDDLEWARE FOR REDengine 3 • Memory management • Ability to plug in your own allocator • Multithreading • Multithreaded building and querues • Amount of data to provide • Triangle soup • No additional data created by artists • Additional work • Coming up with ID scheme • Including occlusion culling in the renderingpart • Tools for building occlusion data SOLVING VISIBILITY in REDengine 3 with UMBRA 3
  • 36. Editor features UMBRA 3 IN REDengine 3
  • 37. UMBRA 3 IN REDengine 3 OCCLUSION DATA STREAMING
  • 38. UMBRA 3 IN REDengine 3 OCCLUSION DATA STREAMING 1. From certain camera position required set of Tiles is determined 2. If the newly determined set differs from the currently used one, asynchronous computation starts 3. Precooked buffers are streamed in (only for Tiles, that had no data streamed in yet) 4. Tome objects are created (only for Tiles that haven’t had this object created yet) 5. Once all the Tomes exist, the TomeCollection object is created from them 6. Newly created TomeCollection is sent to renderer to replace the currently used one 7. Tiles that are no longer necessary destroy their Tome object and unstream the precooked data buffers. Previous TomeCollection object is destroyed.
  • 39. UMBRA 3 IN REDengine 3 OCCLUSION DATA STREAMING
  • 40. UMBRA 3 IN REDengine 3 OCCLUSION DATA STREAMING
  • 41. UMBRA 3 IN REDengine 3
  • 42. DEBUG TOOLS • Quite a few in-engine tools • Detachable camera • Streaming visualizations • Memory statistics • Geometry statistics • All visualizations that Umbra library gives us
  • 51. SAMPLE SCENE • 43 Tomes loaded • 61 MB of Tome data loaded • Additional 15 MB of inter-Tome data generated on the fly • Over 62000 static mesh chunks on scene • Less than 500 visible (~0.76%) • Query time: ~1.8 ms • Dynamic objects occlusion: • Particles • Skinned meshes • Simulated meshes • Decals
  • 52. DEBUG OVERLAY / STATISTICS
  • 54. STATISTICS • Skellige • Area size: 8km x 8km • Amount of geometry: 45000-50000 chunks loaded • Average amount of visible geometry: ~1-5% • City of Novigrad • Area size: 8.5km x 8.5km • Amount of geometry: over 100k chunks loaded • Average amount of visible geometry: ~2-5%
  • 55. STATISTICS • Size of Umbra data (cooked data + object IDs) • Skellige: ~300 MB • Novigrad: ~250 MB • Size of data loaded during runtime • Skellige: 40-80 MB • Novigrad: 45-80 MB
  • 56. COOKER / DATA GENERATION
  • 57. COOKER / DATA GENERATION • Offline process • Data built more than once per day • Dedicated machines (server farm)
  • 58. COOKER / DATA GENERATION • Ability to build data in the editor
  • 59. COOKER / DATA GENERATION Chunks – parts of the same mesh
  • 60. COOKER / DATA GENERATION • LOD levels • Each has drawing distance • Set up by artists Data Generation: • Gather mesh • Gather LOD level • Gather chunks • Assign LOD distances • Assign unique ID
  • 61. COOKER / DATA GENERATION Retrieving data during runtime: • Query Umbra for IDs • Find chunk • Push chunk for drawing • Only visible ones • Proper LOD level
  • 64. WE ARE HIRING! Play your role in CD Projekt RED: • An international team of talented developers and avid gamers. • Creating complex, non-linear AAA RPGs. • Developers of the award-winning Witcher franchise, with over 5million copies sold. • Currently working on The Witcher 3: Wild Hunt and Cyberpunk 2077. APPLY NOW: www.cdpred.com
  • 65. Thank you for attending. For more on Umbra 3, go to umbra3.com Follow us on Twitter @jbushnaief, @cz0per, @umbrasoftware WE ARE HIRING!