Shader#
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#
| Property | Type | Access | Constructor default |
|---|---|---|---|
Id | string | get; init; | required |
Name | string | get; init; | required |
Model | SurfaceModel | get; 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
Related types#
ShaderParameter · ShaderRenderMode · SurfaceModel
Source#
- SurfaceModel.cs