Class ForwardLightingRenderFeature
Compute lighting shaders and data.
public class ForwardLightingRenderFeature : SubRenderFeature, IComponent, IReferencable, ICollectorHolder, IGraphicsRendererCore, IDisposable
- Inheritance
-
ForwardLightingRenderFeature
- Implements
- Inherited Members
- Extension Methods
Fields
CurrentLights
Property key to access the current collection of CameraComponent from RenderContext.Tags.
public static readonly PropertyKey<RenderLightCollection> CurrentLights
Field Value
Properties
LightRenderers
[DataMember]
public TrackingCollection<LightGroupRendererBase> LightRenderers { get; }
Property Value
ShadowMapRenderer
[DataMember]
public IShadowMapRenderer ShadowMapRenderer { get; set; }
Property Value
Methods
Collect()
Performs pipeline initialization, enumerates views and populates visibility groups.
public override void Collect()
Destroy()
Disposes of object resources.
protected override void Destroy()
Draw(RenderDrawContext, RenderView, RenderViewStage)
Performs GPU updates and/or drawing, everytime a render view changes.
public override void Draw(RenderDrawContext context, RenderView renderView, RenderViewStage renderViewStage)
Parameters
context
RenderDrawContextrenderView
RenderViewrenderViewStage
RenderViewStage
Extract()
Extract data from entities, should be as fast as possible to not block simulation loop. It should be mostly copies, and the actual processing should be part of Prepare().
public override void Extract()
Flush(RenderDrawContext)
Releases temporary resources and cleans the state. Should be called once after all Draw(RenderDrawContext, RenderView, RenderViewStage) calls have finished.
public override void Flush(RenderDrawContext context)
Parameters
context
RenderDrawContext
InitializeCore()
Initializes this instance. Query for specific cbuffer (either new one, like PerMaterial, or parts of an existing one, like PerObject=>Skinning)
protected override void InitializeCore()
OnRenderSystemChanged()
protected override void OnRenderSystemChanged()
Prepare(RenderDrawContext)
Performs most of the work (computation and resource preparation). Later game simulation might be running during that step.
public override void Prepare(RenderDrawContext context)
Parameters
context
RenderDrawContext
PrepareEffectPermutations(RenderDrawContext)
Perform effect permutations, before Prepare(RenderDrawContext).
public override void PrepareEffectPermutations(RenderDrawContext context)
Parameters
context
RenderDrawContext
Unload()
public override void Unload()