SlideShare a Scribd company logo
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
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 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 3
Occlusion Culling
SO WHAT’S
ANYWAY?
Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3
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?
Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3
THE WITCHER 3
REQUIREMENTS
• LARGE, OPEN WORLD
→PVS, MANUAL STUFF OUT OF QUESTION
• UMBRA IS AUTOMATIC
• STREAMING
• LODs
POLYGON
SOUP
OCCLUSION
DATA
Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3
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

PPTX
Graphics processing unit (GPU)
PDF
Será Mesmo o Cientista de Dados a Profissão do Futuro?
PDF
memcached Binary Protocol in a Nutshell
PPTX
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
PDF
Lighting Shading by John Hable
PPT
Visibility Optimization for Games
PPT
Secrets of CryENGINE 3 Graphics Technology
PPTX
Practical Occlusion Culling on PS3
Graphics processing unit (GPU)
Será Mesmo o Cientista de Dados a Profissão do Futuro?
memcached Binary Protocol in a Nutshell
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Lighting Shading by John Hable
Visibility Optimization for Games
Secrets of CryENGINE 3 Graphics Technology
Practical Occlusion Culling on PS3

What's hot (20)

PDF
Killzone Shadow Fall Demo Postmortem
PDF
mysql 8.0 architecture and enhancement
PPTX
Grapics debugging with RenderDoc
PPTX
Vitess VReplication: Standing on the Shoulders of a MySQL Giant
PPT
20090107 Postgre Sqlチューニング(Sql編)
PDF
Tableau comparatif des casques de réalité virtuelle 2019
PPT
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
PDF
Spresense meetup#2 try_multicore_programming
PPTX
GRAPHICS PROCESSING UNIT (GPU)
PDF
Pregel: A System For Large Scale Graph Processing
PPTX
Stochastic Screen-Space Reflections
PDF
Logical Replication in PostgreSQL - FLOSSUK 2016
PPTX
Siggraph 2011: Occlusion culling in Alan Wake
PDF
유니티3D에서 2D 이미지 다루기
PPTX
Collaborative Filtering using KNN
PDF
Japanese Linguistics in Lucene and Solr
PDF
Webscale PostgreSQL - JSONB and Horizontal Scaling Strategies
PPTX
Intel Microprocessor
PPTX
게임프로젝트에 적용하는 GPGPU
PDF
How Prometheus Store the Data
Killzone Shadow Fall Demo Postmortem
mysql 8.0 architecture and enhancement
Grapics debugging with RenderDoc
Vitess VReplication: Standing on the Shoulders of a MySQL Giant
20090107 Postgre Sqlチューニング(Sql編)
Tableau comparatif des casques de réalité virtuelle 2019
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Spresense meetup#2 try_multicore_programming
GRAPHICS PROCESSING UNIT (GPU)
Pregel: A System For Large Scale Graph Processing
Stochastic Screen-Space Reflections
Logical Replication in PostgreSQL - FLOSSUK 2016
Siggraph 2011: Occlusion culling in Alan Wake
유니티3D에서 2D 이미지 다루기
Collaborative Filtering using KNN
Japanese Linguistics in Lucene and Solr
Webscale PostgreSQL - JSONB and Horizontal Scaling Strategies
Intel Microprocessor
게임프로젝트에 적용하는 GPGPU
How Prometheus Store the Data
Ad

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

PDF
Solving Visibility and Streaming in The Witcher 3: Wild Hunt with Umbra 3
PPTX
Hands-on with Umbra in Unity - Past, Present and the Future
PPT
Unity bootcamp post mortem
PPT
Boosting Frame-rates in Unity Games Using Umbra 3
PPTX
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...
PPT
Umbra 3 IGDA & Unity Presentation
PPT
Umbra 3 & Unity 3.5 - IGDA Helsinki 2012
PDF
IRJET- Technical Graphic Showcase
PDF
infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3
PPTX
West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4
PDF
Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
PDF
Unreal Engine 4 Introduction
PPTX
Optimizing Total War*: WARHAMMER II
PPTX
East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4
PPT
Introduction to Unity3D Game Engine
PDF
APB Customisation System
PDF
From Unity3D to Unreal Engine 4
PDF
Gamedev-grade debugging
PPTX
Optimization gems from Yager
PDF
Augmented Reality Application Development_Unit II_Material.pdf
Solving Visibility and Streaming in The Witcher 3: Wild Hunt with Umbra 3
Hands-on with Umbra in Unity - Past, Present and the Future
Unity bootcamp post mortem
Boosting Frame-rates in Unity Games Using Umbra 3
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...
Umbra 3 IGDA & Unity Presentation
Umbra 3 & Unity 3.5 - IGDA Helsinki 2012
IRJET- Technical Graphic Showcase
infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3
West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4
Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
Unreal Engine 4 Introduction
Optimizing Total War*: WARHAMMER II
East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4
Introduction to Unity3D Game Engine
APB Customisation System
From Unity3D to Unreal Engine 4
Gamedev-grade debugging
Optimization gems from Yager
Augmented Reality Application Development_Unit II_Material.pdf
Ad

Recently uploaded (20)

PDF
Digital Strategies for Manufacturing Companies
PDF
medical staffing services at VALiNTRY
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Designing Intelligence for the Shop Floor.pdf
PPTX
Reimagine Home Health with the Power of Agentic AI​
PPTX
Transform Your Business with a Software ERP System
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Digital Systems & Binary Numbers (comprehensive )
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Understanding Forklifts - TECH EHS Solution
PDF
System and Network Administration Chapter 2
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Digital Strategies for Manufacturing Companies
medical staffing services at VALiNTRY
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Computer Software and OS of computer science of grade 11.pptx
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
How to Choose the Right IT Partner for Your Business in Malaysia
Designing Intelligence for the Shop Floor.pdf
Reimagine Home Health with the Power of Agentic AI​
Transform Your Business with a Software ERP System
Design an Analysis of Algorithms I-SECS-1021-03
Wondershare Filmora 15 Crack With Activation Key [2025
Digital Systems & Binary Numbers (comprehensive )
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Navsoft: AI-Powered Business Solutions & Custom Software Development
Understanding Forklifts - TECH EHS Solution
System and Network Administration Chapter 2
Adobe Illustrator 28.6 Crack My Vision of Vector Design

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.”
  • 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?
  • 15. THE WITCHER 3 REQUIREMENTS • LARGE, OPEN WORLD →PVS, MANUAL STUFF OUT OF QUESTION • UMBRA IS AUTOMATIC • STREAMING • LODs
  • 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!