Skip to content

GPU culling #47

@VReaperV

Description

@VReaperV

Surface/cluster: uint[] view mask. Main view, portal views, and shadow maps are all views. ~267 max views with 256 shadowmap tiles.

  • Cull surfaces: frustum (per view), occlusion (visbuffer depth, maybe for shadowmaps too?), stream compact clusters.
  • Generate indirect args for cluster culling.
  • Cluster culling: frustum/occlusion same as surfaces (skip for animated geometry for now?). Add triangle totals to each non-culled view.
  • Generate indirect args for triangle culling, set memory offsets for index buffers for each view based on max triangles for each one.
  • Triangle culling: backface, frustum/occlusion same as surfaces. Write index for each non-culled view based on the memory offsets and an atomic for the currently written indices.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions