public sealed class MeshRenderFeatureDraws indexed geometry: the first concrete renderable, and the shape every other follows.
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 NameThe feature's name, for logging and profiling.
public RenderDataKey<MeshDraw> DrawsOne draw per object.
public PipelineCache? PipelinesWhere pipelines come from. Set before the first frame that draws.
public IPipelineDescriber? DescriberHow a pipeline is described for a given effect, stage and output.
public GpuDrawArguments? ArgumentsWhere each draw's arguments come from, when the GPU decides whether it draws anything.
public int DrawCountHow 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