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
    No fields configured for issues without a type.

    Projects

    Status

    Minor Version

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions