Vixen
02b45cc4
csharp
public struct CullView

One view as CullView in the shader declares it.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

The counts ride along with the view rather than living in a uniform block, and that is what lets one dispatch answer for every view at once: a dispatch covering all of them has no single object count to put in a push constant, and a block written per view would mean a dispatch per view.

Fields and properties (14)

  • public CullView.PlaneArray Planes

    The inward-facing planes as (normal.xyz, d), in BoundingFrustum's order: near, far, left, right, top, bottom.

  • public Vector3 Position

    Where the view is, which is what the distance cutoff measures from.

  • public float MaximumDistance

    Objects beyond this are culled whatever the frustum says. Zero disables it.

  • public uint StagesLow

    The low half of the view's Bits.

  • public uint StagesHigh

    The high half of it.

  • public uint ObjectCount

    How many object slots the store holds.

  • public uint WordCount

    How many words this view's answer occupies, which is also the stride between views.

  • public Matrix4x4 OccluderProjection

    The matrix the depth pyramid this view is tested against was rendered with.

  • public uint OccluderLevels

    How many levels the pyramid has, so a chosen level can be clamped to one that exists.

  • public uint Flags

    Occluders when this view has a pyramid to test against.

  • public float ErrorScale

    screenHeight / (2 tan(fov / 2)) — what an object-space error is multiplied by to reach pixels, once divided by the distance.

  • public float ErrorThreshold

    How many pixels of deviation a cluster may have before it is refined.

  • public float SoftwareThreshold

    How wide a cluster may be on screen, in pixels, before it goes to the hardware raster.

  • public CullView.Padding3 Tail

    Twelve bytes of tail padding the shader declares and never reads.

Used by (12)

  • ClusterRoutingTestsVixen.Rendering.Tests
  • ClusterTraversalAcceptsTestsVixen.Rendering.Tests
  • ClusterTraversalGroupTestsVixen.Rendering.Tests
  • GpuClusterCullingVixen.Rendering
  • GpuClusterCullingTestsVixen.Rendering.Tests
  • GpuClusterVisibilityVixen.Rendering
  • GpuCullingVixen.Rendering
  • GpuVisibilityGroupVixen.Rendering
  • GpuVisibilityGroupTestsVixen.Rendering.Tests
  • SkinnedClusterTestsVixen.Rendering.Tests
  • ViewCullingDeviceTestsVixen.Graphics.Golden.Tests
  • VirtualGeometryFrameTestsVixen.Rendering.Tests