Home

Awesome

Unity ECS implementation of a typical Culling system supporting Frustrum Culling and Occlusion Culling


Viewer perspective

#1589F0 Not culled
#f03c15 Culled by Occluders
#888888 Out of Frustrum

Debug view

#1589F0 Not culled
#f03c15 Culled by Occluders
#888888 Out of Frustrum

Debug view

#1589F0 Not culled
#f03c15 Culled by Occluders
#888888 Out of Frustrum

Octree layer 0

Octree layer 1

Octree layer 2

Octree layer 3

Object AABBs

Frustrum AABB

Objects not fitting in any Octree nodes are moved in a particular Root layer for special processing

#aaFF11 Object at Root layer

Inputs


W,A,S,D + Mouse : Basic movements when using the Viewer camera
Mouse Right : Rotate orbital camera around viewer when using the Debug camera
Mouse Scroll : Zoom/Dezoom when using the Debug camera

Space : Switch between Debug/Viewer camera
L : Lock/Unlock camera movements
Alpha1 : Show/Hide stats panel
Alpha2 : Display next Octree layer
Alpha3 : Show/Hide objects at Root Octree layer
Alpha4 : Show/Hide object AABBs
Alpha5 : Show/Hide Frustrum AABB