著色器參數

著色器參數/Shader parameters是著色器類別中的屬性,您可以在編輯器中為使用該著色器創建的材質設置這些屬性。這使您能夠在編輯器中自訂著色器的外觀,並重複使用相同的程式碼來適用於不同的材質。

可以透過在角色類別(actor class)中的屬性上添加 @Parameter() 裝飾器來創建參數。參數的類型將根據屬性的型別註解自動推斷。

以下範例展示了目前支援的所有類型:

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)})
        }
    }
}

最后更新于