public sealed class RenderSystemDrives one frame: extract, cull, prepare, sort.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
The phases of [docs/plan/06 § Frame structure], minus recording — which needs materials and effects and is the next slice. What is here is the part that turns a scene into ordered work lists, and it is entirely CPU-side and deterministic, which is why it can be tested without a device.
The order is a data dependency, not a convention. Culling needs every object extracted, because an object added late would be tested against a stale bitset; preparation needs culling, because its whole value is doing per-visible-object work rather than per-object work; sorting needs preparation, because a feature's sort group may be something preparation resolved. Reordering any pair silently produces a frame that is merely wrong rather than one that fails.
Fields and properties (6)
public RenderObjectStore ObjectsEvery renderable in the scene, and the per-feature arrays beside them.
public IVisibilityGroup VisibilityWhich objects each view can see, and what decided that.
public JobScheduler? SchedulerThe scheduler culling and sorting run on. Null runs them inline.
public IReadOnlyList<RenderStage> StagesThe stages, in the order they were added.
public IReadOnlyList<RenderView> ViewsThe views for the frame being built.
public IReadOnlyList<RootRenderFeature> FeaturesThe root features, in the order they were added.
Methods (12)
public RenderStage AddStage(RenderStage stage)Adds a stage and gives it its index.
public TFeature AddFeature<TFeature>(TFeature feature) where TFeature : RootRenderFeatureAdds a root feature and lets it register its data.
public RenderStage? FindStage(string name)The stage with this name, or null.
public void SetViews(IEnumerable<RenderView> frameViews)Replaces the frame's views. Called once per frame, before Draw.
public void Draw()Runs extract, cull, prepare and sort over the current views.
public void Extract()Pulls the scene into the flat arrays.
public void Cull()Tests every object against every view.
public void Prepare()Lets every feature fill data for what survived culling.
public void Sort()Builds and orders the work list for every (view, stage) pair.
public IReadOnlyList<RenderNode> Nodes(RenderView view, RenderStage stage)The ordered work for one view and stage, empty when there is none.
public void Record(RenderView view, RenderStage stage, RenderDrawContext context)Records one view's stage into a command list, handing each feature its own nodes in runs.
public void Dispose()Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Used by (130, showing 40)
- ArenaThirdPersonShooter
- BuiltThirdPersonShooter.Frame.Tests
- FrameDocumentTestsThirdPersonShooter.Frame.Tests
- VirtualGeometryGameVirtualGeometry
- AutoExposureTestsVixen.Rendering.PostFx.Tests
- BindlessFrameTestsVixen.Rendering.Tests
- BloomTestsVixen.Rendering.PostFx.Tests
- BufferTransferDeviceTestsVixen.Graphics.Golden.Tests
- BufferTransferTestsVixen.Rendering.Tests
- ClusterCullingDeviceTestsVixen.Graphics.Golden.Tests
- ClusteredLightingTestsVixen.Rendering.Tests
- ClusteredShadingDeviceTestsVixen.Graphics.Golden.Tests
- CompositorAssetTestsVixen.Rendering.Tests
- CompositorBuilderVixen.Rendering
- CompositorContentTestsVixen.Assets.Tests
- CompositorImageTestsVixen.Graphics.Golden.Tests
- CountingFeatureVixen.Rendering.Tests
- CountingFeatureVixen.Engine.Renderer.Tests
- CountingSubFeatureVixen.Rendering.Tests
- DefaultFrameTestsVixen.Rendering.Tests
- DepthPrepassTestsVixen.Rendering.Tests
- DescriptorBindingTestsVixen.Rendering.Tests
- DistanceFieldAoImageTestsVixen.Graphics.Golden.Tests
- DrawCompactionTestsVixen.Rendering.Tests
- ForwardFrameTestsVixen.Rendering.Tests
- ForwardLightingRenderFeatureVixen.Rendering
- ForwardLightingTestsVixen.Rendering.Tests
- FrameVixen.Rendering.Tests
- FrameBudgetTestsVixen.Rendering.Tests
- GpuCullingRendererVixen.Rendering
- GpuDrivenCompositorTestsVixen.Rendering.Tests
- GpuVisibilityGroupTestsVixen.Rendering.Tests
- GraphicsCompositorVixen.Rendering
- GraphicsCompositorTestsVixen.Rendering.Tests
- HarnessVixen.Rendering.Tests
- HarnessVixen.Rendering.Tests
- HarnessVixen.Rendering.Tests
- HarnessVixen.Rendering.Tests
- HarnessVixen.Rendering.PostFx.Tests
- HarnessVixen.Rendering.PostFx.Tests