Show / Hide Table of Contents

Class SceneRendererDeferred

Use a Scene Renderer to traverse a scene hierarchy (made out of scene nodes and components) in order to have each visited element contribute to the result rendered against a given render context. This particular SceneRenderer uses deferred rendering.

Inheritance
System.Object
Visitor<SceneNode, SceneComponent>
SceneRendererForward
SceneRendererDeferred
Inherited Members
SceneRendererForward.DoFrumstumCulling
SceneRendererForward.RenderLayer
SceneRendererForward.CurrentInstanceData
SceneRendererForward._boneMap
SceneRendererForward._animation
SceneRendererForward._sc
SceneRendererForward.SC
SceneRendererForward._rc
SceneRendererForward._state
SceneRendererForward.InitAnimations(SceneContainer)
SceneRendererForward.Animate()
SceneRendererForward.NotifyStateChanges()
SceneRendererForward.NotifyCameraChanges(Camera)
SceneRendererForward.AccumulateLight()
SceneRendererForward.RenderRenderLayer(RenderLayer)
SceneRendererForward.RenderBone(Bone)
SceneRendererForward.RenderWeight(Weight)
SceneRendererForward.RenderInstances(InstanceData)
SceneRendererForward.RenderCanvasTransform(CanvasTransform)
SceneRendererForward.RenderRectTransform(RectTransform)
SceneRendererForward.RenderXForm(XForm)
SceneRendererForward.RenderXFormText(XFormText)
SceneRendererForward.RenderTransform(Transform)
SceneRendererForward.RenderEffect(Effect)
SceneRendererForward.AddWeightToMesh(Mesh, Weight)
SceneRendererForward.PushState()
Visitor<SceneNode, SceneComponent>.IgnoreInactiveComponents
Visitor<SceneNode, SceneComponent>.Traverse(SceneNode)
Visitor<SceneNode, SceneComponent>.Traverse(IEnumerable<SceneNode>)
Visitor<SceneNode, SceneComponent>.InitState()
Visitor<SceneNode, SceneComponent>.PushState()
Visitor<SceneNode, SceneComponent>.PopState()
Visitor<SceneNode, SceneComponent>.CurrentNode
Visitor<SceneNode, SceneComponent>.CurrentComponent
Visitor<SceneNode, SceneComponent>.YieldOnCurrentNode
Visitor<SceneNode, SceneComponent>.YieldOnCurrentComponent
Visitor<SceneNode, SceneComponent>.YieldEnumeration
Visitor<SceneNode, SceneComponent>.EnumInit(IEnumerator<SceneNode>)
Visitor<SceneNode, SceneComponent>.EnumMoveNext()
Visitor<SceneNode, SceneComponent>.EnumMoveNextNoComponent()
Visitor<SceneNode, SceneComponent>.VisitorModules
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: Fusee.Engine.Core
Assembly: Fusee.Engine.Core.dll
Syntax
public class SceneRendererDeferred : SceneRendererForward

Constructors

SceneRendererDeferred(SceneContainer, RenderLayers, TexRes, TexRes)

Creates a new instance of type SceneRendererDeferred.

Declaration
public SceneRendererDeferred(SceneContainer sc, RenderLayers renderLayer = RenderLayers.All, TexRes texRes = TexRes.Middle, TexRes shadowMapRes = TexRes.Middle)
Parameters
Type Name Description
SceneContainer sc

The SceneContainer, containing the scene that gets rendered.

RenderLayers renderLayer
TexRes texRes

The g-buffer texture resolution.

TexRes shadowMapRes

The shadow map resolution.

Fields

CascadeFarPlane

Sets the distance to the far plane for the cascaded shadow mapping calculation. For smaller scenes we need to choose smaller values to get shadow maps with decent resolution.

Declaration
public int CascadeFarPlane
Field Value
Type Description
System.Int32

NumberOfCascades

The number of shadow maps, generated when using cascaded shadow mapping for parallel lights. If set to 1 standard shadow mapping is used.

Declaration
public int NumberOfCascades
Field Value
Type Description
System.Int32

PssmLambda

This value is used for cascaded shadow mapping. The viewing frustum is split according to the Parallel Split Shadow Maps algorithm. With this, the lambda value specifies a weight that adapts the logarithmic view frustum split according to the far planes of a uniform split. A value in the range [0;1] is expected. If it falls outside this range the value is clamped.

Declaration
public float PssmLambda
Field Value
Type Description
System.Single

Properties

BackgroundColor

Sets the GL.ClearColor

Declaration
public float4 BackgroundColor { get; }
Property Value
Type Description
float4

FxaaOn

Controls whether the render output is anti aliased using FXAA. This is done in an additional pass that is turned off if this is set to false.

Declaration
public bool FxaaOn { get; set; }
Property Value
Type Description
System.Boolean

ShadowMapRes

The texture resolution in pixel, that is used to create the shadow maps for light sources that cast shadows. Note that shadow casting is only available with deferred rendering.

Declaration
public TexRes ShadowMapRes { get; }
Property Value
Type Description
TexRes

SsaoOn

Determines if the scene gets rendered with Screen Space Ambient Occlusion. This is done in an additional pass that is turned of if this is set to false. In this case the ambient component of the lighting is a static value. If possible set this in the "Init" method to avoid the creation of an SSAO texture if you don't need one.

Declaration
public bool SsaoOn { get; set; }
Property Value
Type Description
System.Boolean

TexRes

The texture resolution in pixel, that is used for the G-Buffer textures.

Declaration
public TexRes TexRes { get; }
Property Value
Type Description
TexRes

Methods

InitState()

Sets the initial values in the RendererState.

Declaration
protected override void InitState()
Overrides
SceneRendererForward.InitState()

PopState()

Pops from the RenderState and sets the Model and View matrices in the RenderContext.

Declaration
protected override void PopState()
Overrides
SceneRendererForward.PopState()

Render(RenderContext)

Renders the scene.

Declaration
public override void Render(RenderContext rc)
Parameters
Type Name Description
RenderContext rc

The RenderContext.

Overrides
SceneRendererForward.Render(RenderContext)

RenderMesh(GpuMesh)

If a Mesh is visited the shader parameters for all lights in the scene are updated and the geometry is passed to be pushed through the rendering pipeline.

Declaration
public void RenderMesh(GpuMesh mesh)
Parameters
Type Name Description
GpuMesh mesh

The Mesh.

RenderMesh(Mesh)

If a Mesh is visited and it has a Weight the BoneIndices and BoneWeights get set, the shader parameters for all lights in the scene are updated and the geometry is passed to be pushed through the rendering pipeline.

Declaration
public void RenderMesh(Mesh mesh)
Parameters
Type Name Description
Mesh mesh

The Mesh.

RenderShaderEffect(Effect)

If a ShaderEffectComponent is visited the ShaderEffect of the RendererState is updated and the effect is set in the RenderContext.

Declaration
public void RenderShaderEffect(Effect effect)
Parameters
Type Name Description
Effect effect

The effect.

SetContext(RenderContext)

Sets the render context for the given scene.

Declaration
public override void SetContext(RenderContext rc)
Parameters
Type Name Description
RenderContext rc
Overrides
SceneRendererForward.SetContext(RenderContext)
Generated by DocFX
GitHub Repo
Back to top