Plush

Shader#

PlushEngine · Type index

Namespace: PlushEngine

A resolved shader datablock: the type of its materials, built on a Model. It holds type-level Settings; parameter defaults it declares are folded into each material's values on load. Materials without a shader use Lit.

public sealed record Shader(string Id, string Name, SurfaceModel Model)

Record properties#

PropertyTypeAccessConstructor default
Idstringget; init;required
Namestringget; init;required
ModelSurfaceModelget; init;required

Members: Lit · Parameter · Parameters · RenderMode · Setting · Settings

Lit#

public static Shader Lit { get; }

Initial value: new("engine:lit", "Lit Surface", SurfaceModel.Lit)

Parameter#

public ShaderParameter? Parameter(string name);

A material parameter by its stable code name, or null when this shader does not declare it. Display labels may change independently.

Parameters#

public IReadOnlyList<ShaderParameter> Parameters { get; }

The shader's material parameter declarations in GPU order. Built-in shaders use their surface model's schema.

RenderMode#

public ShaderRenderMode RenderMode { get; }

The custom surface's coverage policy. Built-in models retain their own rendering policy.

Setting#

public float Setting(string name);

Settings#

public ImmutableDictionary<string, float> Settings { get; init; }

Initial value: ImmutableDictionary<string, float>.Empty

ShaderParameter · ShaderRenderMode · SurfaceModel

Source#