ShaderMaterial

继承: Material < Resource < RefCounted < Object

由自定义Shader程序定义的材质及其着色器参数值。

描述

使用自定义Shader程序渲染视觉项目(画布项目、网格、天空、雾)或处理粒子的材质。与其他材质相比,ShaderMaterial对生成的着色器代码提供了更深入的控制。有关详细信息,请参阅下面的着色器文档索引。

多个ShaderMaterial可以使用相同的着色器并为shader uniform配置不同的值。

注意:出于性能原因,只有当Resource.resource_name发生变化时才会发出Resource.changed信号。只有在编辑器中,它也会为shader更改而发出。

属性

方法


属性说明

Shader shader 🔗

用于渲染此材质的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