Automatic Software Occlusion Culling for Massive Streaming Worlds

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

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 of Automatic Software Occlusion Culling for Massive Streaming Worlds

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]