Shader parameters

Shader parameters are properties on the shader class that you can set in the editor for materials created using the shader. This allows you to customize the shader's appearance from the editor and reuse the code for different materials

Parameters can be created by adding the @Parameter() decorator on a property in your actor class. The type of the parameter will be inferred by your property's type annotation.

The example below shows all currently supported types.

import { rgb, standardMaterial } from "@hology/core/shader-nodes";
import { NodeShader, NodeShaderOutput, Parameter } from "@hology/core/shader/shader";
import { Color, Vector2, Vector3, Color, Euler } from "three";

export class ExampleShader extends NodeShader {
    @Parameter() color: Color = new Color(0xff0000)
    @Parameter() aNumber: number
    @Parameter() aBoolen: boolean
    @Parameter() aString: string
    @Parameter() vec2: Vector2
    @Parameter() vec3: Vector3
    @Parameter() color: Color
    @Parameter() rotation: Euler

    output(): NodeShaderOutput {
        return {
            color: standardMaterial({color: rgb(this.color)})
        }
    }
}

Last updated