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) 🔗
更改这个材质的着色器中为某个 uniform 设置的值。
注意:param
大小写敏感,必须完全匹配代码中 uniform 的名称(不是检查器中首字母大写后的名称)。
注意:对着色器 uniform 的修改会在使用这个 ShaderMaterial 的所有实例上生效。要防止这种行为,请通过 GeometryInstance3D.set_instance_shader_parameter 使用单实例 uniform,或者使用 Resource.duplicate 制作该 ShaderMaterial 的副本。单实例 uniform 可以更好地复用着色器,因此速度也更快,所以应该尽可能优先使用,而不是制作 ShaderMaterial 的副本。