automatic software occlusion culling for massive streaming worlds

39
Automatic Software Occlusion Culling for Massive Streaming Worlds SAMPO LAPPALAINEN UMBRA SOFTWARE

Upload: sampo-lappalainen

Post on 12-Dec-2014

174 views

Category:

Technology


2 download

DESCRIPTION

A presentation I gave in Nexon Developer Conference in Seoul in 2013. This deck covers the most recent stuff we've added to Umbra 3.

TRANSCRIPT

Page 1: Automatic Software Occlusion Culling for Massive Streaming Worlds

Automatic Software Occlusion Culling for Massive Streaming Worlds

SAMPO LAPPALAINENUMBRA SOFTWARE

Page 2: Automatic Software Occlusion Culling for Massive Streaming Worlds

• FOUNDED IN 2007• BASED IN HELSINKI, FINLAND• 11 EMPLOYEES• SPECIALIZING IN OCCLUSION

CULLING• LONG HISTORY IN VISIBILITY

SOLUTIONS• TWO DOZEN SHIPPED

GAMES USE UMBRA• SEVERAL UMBRA 3 –

POWERED GAMES RELEASING IN Q4 2013 AND IN 2014

Page 3: Automatic Software Occlusion Culling for Massive Streaming Worlds
Page 4: Automatic Software Occlusion Culling for Massive Streaming Worlds

PREVIOUS METHODS

• PVS– SLOW TO COMPUTE– STATIC

• OCCLUSION QUERIES– GPU SYNCHRONIZATION

• MANUALLY PLACED PORTALS OR OCCLUDERS- MANUAL WORK- VERY HARD TO MODEL OUTDOOR AREAS ACCURATELY

Page 5: Automatic Software Occlusion Culling for Massive Streaming Worlds
Page 6: Automatic Software Occlusion Culling for Massive Streaming Worlds
Page 7: Automatic Software Occlusion Culling for Massive Streaming Worlds

DESIGN CONSTRAINTS

• BOUNDED TIME• BOUNDED MEMORY• AUTOMATIC• FAST CONTENT ITERATION• ARBITRARY SCENE SIZE

Page 8: Automatic Software Occlusion Culling for Massive Streaming Worlds

WHAT IS VISIBILITY

• SET OF LINES IN SPACE• ACCURATE REPRESENTATION OF VISIBILITY IN POLYGON

SOUP IS VERY COMPLEX O(N^5)

• CONSERVATIVE VISIBILITY

• REASONING ABOUT SPACE• TOPOLOGICAL REPRESENTATION

Page 9: Automatic Software Occlusion Culling for Massive Streaming Worlds

WORKFLOWCONTENT PIPELINE RUNTIME

VISIBLE OBJECTS

VISIBILITY DATA

Page 10: Automatic Software Occlusion Culling for Massive Streaming Worlds

POLYGON SOUP

Page 11: Automatic Software Occlusion Culling for Massive Streaming Worlds

VOXELS

Page 12: Automatic Software Occlusion Culling for Massive Streaming Worlds

CELLS AND

PORTALS

Page 13: Automatic Software Occlusion Culling for Massive Streaming Worlds

VIEW TREE• CONSTRUCT VIEW TREE FROM

VOXELS

Page 14: Automatic Software Occlusion Culling for Massive Streaming Worlds

HIERARCHICAL OCCLUDER DATA

• SAME DATA IN LOWER RESOLUTION

Page 15: Automatic Software Occlusion Culling for Massive Streaming Worlds

TOME OF VISIBILITY

TOME

Page 16: Automatic Software Occlusion Culling for Massive Streaming Worlds

STREAMING BLOCKS• COMPUTE

DATA FOR EACH SUB-REGION

STREAMINGBLOCK

STREAMINGBLOCK

STREAMINGBLOCK

STREAMINGBLOCK

STREAMINGBLOCK

Page 17: Automatic Software Occlusion Culling for Massive Streaming Worlds

RUNTIME

Page 18: Automatic Software Occlusion Culling for Massive Streaming Worlds

STREAMING• CHOOSE THE

SET OF STREAMING BLOCKS NEEDED

STREAMINGBLOCK

STREAMINGBLOCK

STREAMINGBLOCK

STREAMINGBLOCK

Page 19: Automatic Software Occlusion Culling for Massive Streaming Worlds

STREAMING• COMBINE INTO

A TOME OF VISIBILITY

TOME

Page 20: Automatic Software Occlusion Culling for Massive Streaming Worlds

VISIBILITY QUERY• VISIBLE OBJECTS AND DEPTH BUFFER FROM THE

TOMETOME

Page 21: Automatic Software Occlusion Culling for Massive Streaming Worlds

VISIBILITY QUERY1. FIND

STARTING CELL FROM VIEW TREE

Page 22: Automatic Software Occlusion Culling for Massive Streaming Worlds

VISIBILITY QUERY2. RASTERIZE

PORTAL GRAPH

Page 23: Automatic Software Occlusion Culling for Massive Streaming Worlds

HIERARCHICAL OCCLUDER DATA

3. SELECT RESOLUTION BASED ON DISTANCE

Page 24: Automatic Software Occlusion Culling for Massive Streaming Worlds

DEPTH BUFFER

Page 25: Automatic Software Occlusion Culling for Massive Streaming Worlds

TEST OBJECTS3. OBJECT VISIBILITY

Page 26: Automatic Software Occlusion Culling for Massive Streaming Worlds

DYNAMIC OCCLUDERS

Page 27: Automatic Software Occlusion Culling for Massive Streaming Worlds

PREDICTED CAMERA

Page 28: Automatic Software Occlusion Culling for Massive Streaming Worlds

RECAP

Page 29: Automatic Software Occlusion Culling for Massive Streaming Worlds

Demo

Page 30: Automatic Software Occlusion Culling for Massive Streaming Worlds
Page 31: Automatic Software Occlusion Culling for Massive Streaming Worlds

Demo2-3 min?

Page 32: Automatic Software Occlusion Culling for Massive Streaming Worlds

Demo2-3 min?

Page 33: Automatic Software Occlusion Culling for Massive Streaming Worlds

Demo2-3 min?

Page 34: Automatic Software Occlusion Culling for Massive Streaming Worlds

Demo2-3 min?

Page 35: Automatic Software Occlusion Culling for Massive Streaming Worlds

CONCLUSIONS AND FUTURE WORK

Page 36: Automatic Software Occlusion Culling for Massive Streaming Worlds

CONCLUSIONS

• DATA STRUCTURE FOR SPATIAL REASONING IN POLYGON SOUP

• VOXELS AND AUTOMATIC PORTAL GENERATION

Page 37: Automatic Software Occlusion Culling for Massive Streaming Worlds

OTHER USE CASES

• SHADOW CASTER CULLING• GAME LOGIC• AUDIO OCCLUSION• LIGHTING

Page 38: Automatic Software Occlusion Culling for Massive Streaming Worlds

FUTURE WORK

• GENERATE DATA AT RUNTIME• AUTOMATED LEVEL ANALYSIS• COMPUTE SHADER VERSION• OTHER USE CASES FOR SPATIAL

REASONING

Page 39: Automatic Software Occlusion Culling for Massive Streaming Worlds

Thank You and Q&A

TOME

[email protected]