ShaderMaterial
继承: Material < Resource < RefCounted < Object
由自定义 Shader 程序定义的材质及其着色器参数的值。
描述
使用自定义 Shader 程序来渲染可见项目(画布项目、网格、天空、雾)或处理粒子的材质。与其他材质相比,ShaderMaterial 可以更深入地控制生成的着色器代码。有关更多信息,请参阅下面的着色器文档索引。
多个 ShaderMaterial 可以使用相同的着色器并为着色器 uniform 配置不同的值。
注意:出于性能原因,仅当 Resource.resource_name 更改时才会发出 Resource.changed 信号。仅在编辑器中,它也会针对 shader 更改而发出。
教程
属性
方法
get_shader_parameter(param: StringName) const |
|
void |
set_shader_parameter(param: StringName, value: Variant) |
属性说明
用于渲染此材质的 Shader 程序。
方法说明
Variant get_shader_parameter(param: StringName) const 🔗
返回在着色器中此 uniform 材质的当前值。
void set_shader_parameter(param: StringName, value: Variant) 🔗
Changes the value set for this material of a uniform in the shader.
Note: param is case-sensitive and must match the name of the uniform in the code exactly (not the capitalized name in the inspector).
Note: Changes to the shader uniform will be effective on all instances using this ShaderMaterial. To prevent this, use per-instance uniforms with CanvasItem.set_instance_shader_parameter(), GeometryInstance3D.set_instance_shader_parameter() or duplicate the ShaderMaterial resource using Resource.duplicate(). Per-instance uniforms allow for better shader reuse and are therefore faster, so they should be preferred over duplicating the ShaderMaterial when possible.