Vixen
02b45cc4
csharp
public sealed class MeshRenderFeature

Draws indexed geometry: the first concrete renderable, and the shape every other follows.

Read the guide page for this →

Remarks

What this owns is small on purpose — one MeshDraw per object and the draw calls that follow from it. Where the object is belongs to TransformRenderFeature; what it is drawn with belongs to MaterialRenderFeature. Neither is referenced from here, and that is the point of the arrangement rather than an accident of it: a mesh that gains skinning gains a third sub-feature and this file does not change.

The binding order is what the sort was for. A run arrives already grouped by pipeline, so the pipeline is bound once for the run and the descriptor set only when the material changes within it. Re-binding per node would compile, draw the same image, and throw away the reason the sort key puts grouping above depth.

Fields and properties (7)

  • public override string Name

    The feature's name, for logging and profiling.

  • public RenderDataKey<MeshDraw> Draws

    One draw per object.

  • public PipelineCache? Pipelines

    Where pipelines come from. Set before the first frame that draws.

  • public IPipelineDescriber? Describer

    How a pipeline is described for a given effect, stage and output.

  • public GpuDrawArguments? Arguments

    Where each draw's arguments come from, when the GPU decides whether it draws anything.

  • public int DrawCount

    How many draw commands this feature has recorded, and over how many indices.

  • public long IndexCount

Methods (5)

  • protected internal override void Initialize(RenderSystem system)

    Registers this feature's own per-object data. Called once, when it is added.

  • public void FillArguments(RenderSystem system, Span<DrawCommand> commands)
  • public void FillBatches(RenderSystem system, Span<uint> batches)
  • protected internal override void Draw(RenderSystem system, RenderDrawContext context, ReadOnlySpan<RenderNode> nodes)

    Records this feature's share of one stage's work into a command list.

  • protected internal override uint SortGroupOf(RenderSystem system, RenderObjectId id, RenderStage stage)

    The sort group for one object, which the key puts above depth.

Used by (54, showing 40)

  • ArenaThirdPersonShooter
  • BindlessFrameTestsVixen.Rendering.Tests
  • ClusteredLightingTestsVixen.Rendering.Tests
  • ClusteredShadingDeviceTestsVixen.Graphics.Golden.Tests
  • CompositorAssetTestsVixen.Rendering.Tests
  • CompositorImageTestsVixen.Graphics.Golden.Tests
  • DepthPrepassTestsVixen.Rendering.Tests
  • DescriptorBindingTestsVixen.Rendering.Tests
  • DrawCompactionTestsVixen.Rendering.Tests
  • ForwardFrameTestsVixen.Rendering.Tests
  • ForwardLightingTestsVixen.Rendering.Tests
  • GpuDrivenCompositorTestsVixen.Rendering.Tests
  • GpuVisibilityGroupTestsVixen.Rendering.Tests
  • GraphicsCompositorTestsVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • IrradianceBounceDeviceTestsVixen.Graphics.Golden.Tests
  • IrradianceShadingDeviceTestsVixen.Graphics.Golden.Tests
  • LodTestsVixen.Rendering.Tests
  • MaterialBindingTestsVixen.Rendering.Tests
  • MaterialRecordBufferTestsVixen.Rendering.Tests
  • MaterialTextureIndexTestsVixen.Rendering.Tests