SlideShare una empresa de Scribd logo
1 de 65
Descargar para leer sin conexión
Solving Visibility and
Streaming in The Witcher 3:
Wild Hunt with Umbra 3
Agenda
3
UMBRA
SOFTWARE
“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

The Witcher 3 Requirements
•
→
•
•
•
•
•
•
•
•
–
–
–
•
•
•
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!

Más contenido relacionado

La actualidad más candente

Unity Internals: Memory and Performance
Unity Internals: Memory and PerformanceUnity Internals: Memory and Performance
Unity Internals: Memory and PerformanceDevGAMM Conference
 
MMO Design Architecture by Andrew
MMO Design Architecture by AndrewMMO Design Architecture by Andrew
MMO Design Architecture by AndrewAgate Studio
 
OGDC2012 A Practical Architecture Design For MMO Casual Game_Mr. An, Ngo Thai
OGDC2012 A Practical Architecture Design For MMO Casual Game_Mr. An, Ngo ThaiOGDC2012 A Practical Architecture Design For MMO Casual Game_Mr. An, Ngo Thai
OGDC2012 A Practical Architecture Design For MMO Casual Game_Mr. An, Ngo ThaiBuff Nguyen
 
Create a 3D Game Engine for Pebble
Create a 3D Game Engine for PebbleCreate a 3D Game Engine for Pebble
Create a 3D Game Engine for PebbleShipeng Xu
 
Unreal Engine Basics 04 - Behavior Trees
Unreal Engine Basics 04 - Behavior TreesUnreal Engine Basics 04 - Behavior Trees
Unreal Engine Basics 04 - Behavior TreesNick Pruehs
 
【Unite 2017 Tokyo】Unity5.6での2D新機能解説
【Unite 2017 Tokyo】Unity5.6での2D新機能解説【Unite 2017 Tokyo】Unity5.6での2D新機能解説
【Unite 2017 Tokyo】Unity5.6での2D新機能解説Unity Technologies Japan K.K.
 
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
 
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)David Salz
 
Practical guide to optimization in Unity
Practical guide to optimization in UnityPractical guide to optimization in Unity
Practical guide to optimization in UnityDevGAMM Conference
 
Creating a third-person zombie horde shooter using DOTS – Unite Copenhagen
Creating a third-person zombie horde shooter using DOTS – Unite CopenhagenCreating a third-person zombie horde shooter using DOTS – Unite Copenhagen
Creating a third-person zombie horde shooter using DOTS – Unite CopenhagenUnity Technologies
 
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 DawnGuerrilla
 
【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化
【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化
【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化Unity Technologies Japan K.K.
 
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
 
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張Unite2017Tokyo
 
Albion Online - A Cross-Platform MMO (Unite Europe 2016, Amsterdam)
Albion Online - A Cross-Platform MMO (Unite Europe 2016, Amsterdam)Albion Online - A Cross-Platform MMO (Unite Europe 2016, Amsterdam)
Albion Online - A Cross-Platform MMO (Unite Europe 2016, Amsterdam)David Salz
 
Demystifying azure coud shell by Baki Onur Okutucu
Demystifying azure coud shell by Baki Onur OkutucuDemystifying azure coud shell by Baki Onur Okutucu
Demystifying azure coud shell by Baki Onur OkutucuMartynas Valkunas, Azure MVP
 
Introduction to Webgl by Rachel Prudden
Introduction to Webgl by Rachel PruddenIntroduction to Webgl by Rachel Prudden
Introduction to Webgl by Rachel PruddenTechExeter
 
Making an independend MMO - The Albion Online Story
Making an independend MMO - The Albion Online StoryMaking an independend MMO - The Albion Online Story
Making an independend MMO - The Albion Online StoryDavid Salz
 
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unity Technologies
 
Optimizing Unity games for mobile devices
Optimizing Unity games for mobile devicesOptimizing Unity games for mobile devices
Optimizing Unity games for mobile devicesBruno Cicanci
 

La actualidad más candente (20)

Unity Internals: Memory and Performance
Unity Internals: Memory and PerformanceUnity Internals: Memory and Performance
Unity Internals: Memory and Performance
 
MMO Design Architecture by Andrew
MMO Design Architecture by AndrewMMO Design Architecture by Andrew
MMO Design Architecture by Andrew
 
OGDC2012 A Practical Architecture Design For MMO Casual Game_Mr. An, Ngo Thai
OGDC2012 A Practical Architecture Design For MMO Casual Game_Mr. An, Ngo ThaiOGDC2012 A Practical Architecture Design For MMO Casual Game_Mr. An, Ngo Thai
OGDC2012 A Practical Architecture Design For MMO Casual Game_Mr. An, Ngo Thai
 
Create a 3D Game Engine for Pebble
Create a 3D Game Engine for PebbleCreate a 3D Game Engine for Pebble
Create a 3D Game Engine for Pebble
 
Unreal Engine Basics 04 - Behavior Trees
Unreal Engine Basics 04 - Behavior TreesUnreal Engine Basics 04 - Behavior Trees
Unreal Engine Basics 04 - Behavior Trees
 
【Unite 2017 Tokyo】Unity5.6での2D新機能解説
【Unite 2017 Tokyo】Unity5.6での2D新機能解説【Unite 2017 Tokyo】Unity5.6での2D新機能解説
【Unite 2017 Tokyo】Unity5.6での2D新機能解説
 
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
 
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
 
Practical guide to optimization in Unity
Practical guide to optimization in UnityPractical guide to optimization in Unity
Practical guide to optimization in Unity
 
Creating a third-person zombie horde shooter using DOTS – Unite Copenhagen
Creating a third-person zombie horde shooter using DOTS – Unite CopenhagenCreating a third-person zombie horde shooter using DOTS – Unite Copenhagen
Creating a third-person zombie horde shooter using DOTS – Unite Copenhagen
 
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
 
【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化
【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化
【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化
 
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
 
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張
 
Albion Online - A Cross-Platform MMO (Unite Europe 2016, Amsterdam)
Albion Online - A Cross-Platform MMO (Unite Europe 2016, Amsterdam)Albion Online - A Cross-Platform MMO (Unite Europe 2016, Amsterdam)
Albion Online - A Cross-Platform MMO (Unite Europe 2016, Amsterdam)
 
Demystifying azure coud shell by Baki Onur Okutucu
Demystifying azure coud shell by Baki Onur OkutucuDemystifying azure coud shell by Baki Onur Okutucu
Demystifying azure coud shell by Baki Onur Okutucu
 
Introduction to Webgl by Rachel Prudden
Introduction to Webgl by Rachel PruddenIntroduction to Webgl by Rachel Prudden
Introduction to Webgl by Rachel Prudden
 
Making an independend MMO - The Albion Online Story
Making an independend MMO - The Albion Online StoryMaking an independend MMO - The Albion Online Story
Making an independend MMO - The Albion Online Story
 
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
 
Optimizing Unity games for mobile devices
Optimizing Unity games for mobile devicesOptimizing Unity games for mobile devices
Optimizing Unity games for mobile devices
 

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

Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3
Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3
Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3Umbra
 
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
 
Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...DataWorks Summit
 
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
 
How to Make Norikra Perfect
How to Make Norikra PerfectHow to Make Norikra Perfect
How to Make Norikra PerfectSATOSHI TAGOMORI
 
High resolution animated scenes from stills
High resolution animated scenes from stillsHigh resolution animated scenes from stills
High resolution animated scenes from stillsCarolyn Rose
 
Deep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLiftDeep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLiftAmazon Web Services
 
Gpu with cuda architecture
Gpu with cuda architectureGpu with cuda architecture
Gpu with cuda architectureDhaval Kaneria
 
The impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenThe impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenParticular Software
 
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
 
Asynchronous design with Spring and RTI: 1M events per second
Asynchronous design with Spring and RTI: 1M events per secondAsynchronous design with Spring and RTI: 1M events per second
Asynchronous design with Spring and RTI: 1M events per secondStuart (Pid) Williams
 
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
 
3 boyd direct3_d12 (1)
3 boyd direct3_d12 (1)3 boyd direct3_d12 (1)
3 boyd direct3_d12 (1)mistercteam
 
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
 
Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.CUBRID
 

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

Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3
Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3
Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3
 
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 ...
 
Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...
 
Collecting 600M events/day
Collecting 600M events/dayCollecting 600M events/day
Collecting 600M events/day
 
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
 
DigitalCreationLita
DigitalCreationLitaDigitalCreationLita
DigitalCreationLita
 
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
 
How to Make Norikra Perfect
How to Make Norikra PerfectHow to Make Norikra Perfect
How to Make Norikra Perfect
 
High resolution animated scenes from stills
High resolution animated scenes from stillsHigh resolution animated scenes from stills
High resolution animated scenes from stills
 
Deep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLiftDeep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLift
 
Gpu with cuda architecture
Gpu with cuda architectureGpu with cuda architecture
Gpu with cuda architecture
 
The impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenThe impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves Goeleven
 
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...
 
Asynchronous design with Spring and RTI: 1M events per second
Asynchronous design with Spring and RTI: 1M events per secondAsynchronous design with Spring and RTI: 1M events per second
Asynchronous design with Spring and RTI: 1M events per second
 
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 ...
 
3 boyd direct3_d12 (1)
3 boyd direct3_d12 (1)3 boyd direct3_d12 (1)
3 boyd direct3_d12 (1)
 
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
 
Cocos2d programming
Cocos2d programmingCocos2d programming
Cocos2d programming
 
Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.
 
Jan Hloušek, Keen Software House
Jan Hloušek, Keen Software HouseJan Hloušek, Keen Software House
Jan Hloušek, Keen Software House
 

Último

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 

Último (20)

Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 

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

  • 1. Solving Visibility and Streaming in The Witcher 3: Wild Hunt with Umbra 3
  • 3. 3 UMBRA SOFTWARE “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.
  • 11.
  • 12.
  • 13. The Witcher 3 Requirements
  • 14.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 24.
  • 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!