ShaderMaterial¶
继承: Material < Resource < RefCounted < Object
由自定义Shader程序定义的材质及其着色器参数值。
描述¶
使用自定义Shader程序渲染视觉项目(画布项目、网格、天空、雾)或处理粒子的材质。与其他材质相比,ShaderMaterial对生成的着色器代码提供了更深入的控制。有关详细信息,请参阅下面的着色器文档索引。
多个ShaderMaterial可以使用相同的着色器并为shader 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 🔗
返回着色器中为统一材质设置的当前值。
void set_shader_parameter(param: StringName, value: Variant) 🔗
更改着色器中统一材质的值集。
注意:param区分大小写,必须与代码中的uniform 名称完全匹配(而不是检查器中的大写名称)。
注意:对着色器统一的更改将对使用此ShaderMaterial的所有实例有效。为了防止这种情况,请使用GeometryRender.set_instance_shader_parameter()的每个实例统一或使用 Resource.duplicate()复制ShaderMaterial资源。每个实例统一允许更好的着色器重用,因此速度更快,因此在可能的情况下,它们应该优先于复制ShaderMaterial。