Material

继承: Resource < RefCounted < Object

派生: BaseMaterial3D, CanvasItemMaterial, FogMaterial, PanoramaSkyMaterial, ParticleProcessMaterial, PhysicalSkyMaterial, PlaceholderMaterial, ProceduralSkyMaterial, ShaderMaterial

虚拟基类,用于将视觉属性应用于对象,例如颜色和粗糙度。

描述

Material是用于着色和着色几何的基础资源。所有材质都继承自它,几乎所有VisualRender派生的节点都带有一个Material。一些标志和参数在所有材质类型之间共享,并在此处配置。

重要的是,您可以从Material继承以在脚本或S3Extension中创建自己的自定义材质类型。

属性

方法


常量

RENDER_PRIORITY_MAX = 127 🔗

render_priority参数的最大值。

RENDER_PRIORITY_MIN = -128 🔗

render_priority参数的最小值。


属性说明

Material next_pass 🔗

设置用于下一次传递的Material。这将使用不同的材质再次渲染对象。

注:next_pass素材不一定在来源Material之后立即绘制,绘制顺序由素材属性、render_priority和到摄像机的距离决定。

注意:这仅适用于类型为“空间”的StandardMaterial3Ds和ShaderMaterials。


int render_priority 🔗

  • void set_render_priority(value: int)

  • int get_render_priority()

设置3D场景中对象的渲染优先级。较高优先级的对象将在较低优先级的对象之前排序。换句话说,所有具有render_priority1的对象将在所有具有render_priority0的对象之前渲染。

注意:这仅适用于类型为“空间”的StandardMaterial3Ds和ShaderMaterials。

注意:这不会影响透明对象相对于不透明对象的排序方式,或者动态网格相对于其他不透明网格的排序方式。这是因为所有透明对象都是在所有不透明对象之后绘制的,所有动态不透明网格都是在其他不透明网格之前绘制的。


方法说明

bool _can_do_next_pass() virtual const 🔗

仅为覆盖目的而公开。您不能直接调用此函数。在内部用于确定是否应在编辑器中显示next_pass


bool _can_use_render_priority() virtual const 🔗

仅为覆盖目的而公开。您不能直接调用此函数。在内部用于确定是否应在编辑器中显示render_priority


Mode _get_shader_mode() virtual const 🔗

仅出于覆盖目的而暴露。您不能直接调用此函数。由各种编辑器工具内部使用。


RID _get_shader_rid() virtual const 🔗

仅为覆盖目的而暴露。您不能直接调用此函数。由各种编辑器工具内部使用。用于访问MaterialShader的RID。


Resource create_placeholder() const 🔗

创建此资源的占位符版本(PlaceholderMaterial)。


void inspect_native_shader_code() 🔗

仅在编辑器中运行时可用。打开一个弹出窗口,可视化生成的着色器代码,包括所有变体和内部着色器代码。另请参阅Shader.inspect_native_shader_code()