Show / Hide Table of Contents

Class SurfaceEffectBase

A surface effect contains information to build a shader program. This is an abstract base class.

Inheritance
System.Object
SceneComponent
Effect
SurfaceEffectBase
SurfaceEffect
Implements
IComponent
System.IDisposable
Inherited Members
Effect.UniformParameters
Effect.RendererStates
Effect.EffectChanged
Effect.EffectManagerEventArgs
Effect.SessionUniqueIdentifier
Effect.SetFxParam<T>(String, T)
Effect.SetFxParam<T>(Int32, T)
Effect.GetFxParam<T>(String)
Effect.Equals(Object)
Effect.Equals(Effect)
Effect.GetHashCode()
Effect.Dispose()
Effect.Dispose(Boolean)
SceneComponent.Name
SceneComponent.Active
System.Object.Equals(System.Object, System.Object)
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: Fusee.Engine.Core.Effects
Assembly: Fusee.Engine.Core.dll
Syntax
public abstract class SurfaceEffectBase : Effect, IComponent, IDisposable

Constructors

SurfaceEffectBase(SurfaceEffectInput, RenderStateSet)

Creates a new Instance of type SurfaceEffect.

Declaration
public SurfaceEffectBase(SurfaceEffectInput surfaceInput, RenderStateSet renderStateSet = null)
Parameters
Type Name Description
SurfaceEffectInput surfaceInput

SurfaceInput. Provides the values used to modify the SurfaceOut.

RenderStateSet renderStateSet

Optional. If no RenderStateSet is given a default one will be added.

Fields

Pi

The shader shard containing the definition of PI.

Declaration
[FxShader(ShaderCategory.Vertex | ShaderCategory.Fragment)]
[FxShard(ShardCategory.Header)]
public string Pi
Field Value
Type Description
System.String

Precision

The shader shard containing the float precision.

Declaration
[FxShader(ShaderCategory.Vertex | ShaderCategory.Fragment)]
[FxShard(ShardCategory.Header)]
public string Precision
Field Value
Type Description
System.String

SurfaceOutput

Struct declaration in the shader code that provides the values for the position calculation of the vertex shader and lighting calculation of the fragment shader. Values of this struct can be modified by the user using SurfOutFragMethod (fragment shader). The value is filled in the constructor using the chosen lighting setup.

Declaration
[FxShader(ShaderCategory.Vertex | ShaderCategory.Fragment)]
[FxShard(ShardCategory.SurfOutStruct)]
public string SurfaceOutput
Field Value
Type Description
System.String

SurfOutFragMethod

Shader Shard Method to modify the SurfaceOutput.

Declaration
[FxShader(ShaderCategory.Fragment)]
[FxShard(ShardCategory.SurfOut)]
public string SurfOutFragMethod
Field Value
Type Description
System.String

SurfOutVertMethod

Shader Shard Method to modify the SurfaceOutput.

Declaration
[FxShader(ShaderCategory.Vertex)]
[FxShard(ShardCategory.SurfOut)]
public string SurfOutVertMethod
Field Value
Type Description
System.String

SurfVaryingFrag

Fragment shader "in" declaration of the SurfaceOutput.

Declaration
[FxShader(ShaderCategory.Fragment)]
[FxShard(ShardCategory.Property)]
public string SurfVaryingFrag
Field Value
Type Description
System.String

SurfVaryingVert

Vertex shader "out" declaration of the SurfaceOutput.

Declaration
[FxShader(ShaderCategory.Vertex)]
[FxShard(ShardCategory.Property)]
public string SurfVaryingVert
Field Value
Type Description
System.String

TBNIn

Fragment shader "in" declaration for the TBN matrix.

Declaration
[FxShader(ShaderCategory.Fragment)]
[FxShard(ShardCategory.Property)]
public string TBNIn
Field Value
Type Description
System.String

TBNOut

Vertex shader "out" declaration for the TBN matrix.

Declaration
[FxShader(ShaderCategory.Vertex)]
[FxShard(ShardCategory.Property)]
public string TBNOut
Field Value
Type Description
System.String

UvIn

Fragment shader "in" declaration for the uv coordinates.

Declaration
[FxShader(ShaderCategory.Fragment)]
[FxShard(ShardCategory.Property)]
public string UvIn
Field Value
Type Description
System.String

UvOut

Vertex shader "out" declaration for the uv coordinates.

Declaration
[FxShader(ShaderCategory.Vertex)]
[FxShard(ShardCategory.Property)]
public string UvOut
Field Value
Type Description
System.String

Version

The shader shard containing the shader version.

Declaration
[FxShader(ShaderCategory.Vertex | ShaderCategory.Fragment)]
[FxShard(ShardCategory.Header)]
public string Version
Field Value
Type Description
System.String

VertColor1In

Fragment shader "in" declaration for the vertex colors.

Declaration
[FxShader(ShaderCategory.Fragment)]
[FxShard(ShardCategory.Property)]
public string VertColor1In
Field Value
Type Description
System.String

VertColor1Out

Vertex shader "out" declaration for the vertex colors.

Declaration
[FxShader(ShaderCategory.Vertex)]
[FxShard(ShardCategory.Property)]
public string VertColor1Out
Field Value
Type Description
System.String

VertColor2In

Fragment shader "in" declaration for the vertex colors.

Declaration
[FxShader(ShaderCategory.Fragment)]
[FxShard(ShardCategory.Property)]
public string VertColor2In
Field Value
Type Description
System.String

VertColor2Out

Vertex shader "out" declaration for the vertex colors.

Declaration
[FxShader(ShaderCategory.Vertex)]
[FxShard(ShardCategory.Property)]
public string VertColor2Out
Field Value
Type Description
System.String

VertColorIn

Fragment shader "in" declaration for the vertex colors.

Declaration
[FxShader(ShaderCategory.Fragment)]
[FxShard(ShardCategory.Property)]
public string VertColorIn
Field Value
Type Description
System.String

VertColorOut

Vertex shader "out" declaration for the vertex colors.

Declaration
[FxShader(ShaderCategory.Vertex)]
[FxShard(ShardCategory.Property)]
public string VertColorOut
Field Value
Type Description
System.String

VertIn

The shader shard containing "fu" variables (in and out parameters) like fuVertex, fuNormal etc. The value is filled in the constructor using the chosen lighting setup.

Declaration
[FxShader(ShaderCategory.Vertex)]
[FxShard(ShardCategory.Property)]
public string VertIn
Field Value
Type Description
System.String

Properties

SurfaceInput

User-defined input struct. Must derive from DiffuseInput. Used in the SurfOutFragMethod to modify the parameters of the chosen SurfaceOutput.

Declaration
public SurfaceEffectInput SurfaceInput { get; set; }
Property Value
Type Description
SurfaceEffectInput

Methods

HandleFieldsAndProps()

Reads all Fields an Properties from this type and builds IFxParamDeclarations and shader code snippets from them.

Declaration
protected void HandleFieldsAndProps()

PropertyChangedHandler(Object, SurfaceEffectEventArgs, String)

Event Handler that is called on PropertyChanged.

Declaration
protected void PropertyChangedHandler(object sender, SurfaceEffectEventArgs args, string memberName)
Parameters
Type Name Description
System.Object sender

The sender object.

SurfaceEffectEventArgs args

The event arguments.

System.String memberName

The name of the member which this event originated from.

Implements

IComponent
System.IDisposable
Generated by DocFX
GitHub Repo
Back to top