Material¶
继承: Resource < RefCounted < Object
派生: BaseMaterial3D, CanvasItemMaterial, FogMaterial, PanoramaSkyMaterial, ParticleProcessMaterial, PhysicalSkyMaterial, PlaceholderMaterial, ProceduralSkyMaterial, ShaderMaterial
虚拟基类,用于将视觉属性应用于对象,例如颜色和粗糙度。
描述¶
Material是用于着色和着色几何的基础资源。所有材质都继承自它,几乎所有VisualRender派生的节点都带有一个Material。一些标志和参数在所有材质类型之间共享,并在此处配置。
重要的是,您可以从Material继承以在脚本或S3Extension中创建自己的自定义材质类型。
属性¶
方法¶
_can_do_next_pass() virtual const |
|
_can_use_render_priority() virtual const |
|
_get_shader_mode() virtual const |
|
_get_shader_rid() virtual const |
|
create_placeholder() const |
|
void |
常量¶
RENDER_PRIORITY_MAX = 127 🔗
render_priority参数的最大值。
RENDER_PRIORITY_MIN = -128 🔗
render_priority参数的最小值。
属性说明¶
设置用于下一次传递的Material。这将使用不同的材质再次渲染对象。
注:next_pass素材不一定在来源Material之后立即绘制,绘制顺序由素材属性、render_priority和到摄像机的距离决定。
注意:这仅适用于类型为“空间”的StandardMaterial3Ds和ShaderMaterials。
设置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 🔗
仅为覆盖目的而暴露。您不能直接调用此函数。由各种编辑器工具内部使用。用于访问Material的Shader的RID。
Resource create_placeholder() const 🔗
创建此资源的占位符版本(PlaceholderMaterial)。
void inspect_native_shader_code() 🔗
仅在编辑器中运行时可用。打开一个弹出窗口,可视化生成的着色器代码,包括所有变体和内部着色器代码。另请参阅Shader.inspect_native_shader_code()。