Material

Наследует: Resource < RefCounted < Object

Наследуется от: BaseMaterial3D, CanvasItemMaterial, FogMaterial, PanoramaSkyMaterial, ParticleProcessMaterial, PhysicalSkyMaterial, PlaceholderMaterial, ProceduralSkyMaterial, ShaderMaterial

Виртуальный базовый класс для применения визуальных свойств к объекту, таких как цвет и шероховатость.

Описание

Material — это базовый ресурс, используемый для раскрашивания и затенения геометрии. Все материалы наследуются от него, и почти все производные узлы VisualInstance3D содержат Material. Несколько флагов и параметров являются общими для всех типов материалов и настраиваются здесь.

Важно, что вы можете наследовать от Material, чтобы создать свой собственный тип материала в скрипте или в GDExtension.

Обучающие материалы

Свойства

Material

next_pass

int

render_priority

Методы

bool

_can_do_next_pass() virtual const

bool

_can_use_render_priority() virtual const

Mode

_get_shader_mode() virtual required const

RID

_get_shader_rid() virtual required const

Resource

create_placeholder() const

void

inspect_native_shader_code()


Константы

RENDER_PRIORITY_MAX = 127 🔗

Максимальное значение параметра render_priority.

RENDER_PRIORITY_MIN = -128 🔗

Минимальное значение параметра render_priority.


Описания свойств

Material next_pass 🔗

Устанавливает Material, который будет использоваться для следующего прохода. Это снова визуализирует объект с использованием другого материала.

Примечание: Материалы next_pass не обязательно отрисовываются сразу после исходного Material. Порядок отрисовки определяется свойствами материала, render_priority и расстоянием до камеры.

Примечание: Это применимо только к StandardMaterial3D и ShaderMaterial с типом «Spatial».


int render_priority 🔗

  • void set_render_priority(value: int)

  • int get_render_priority()

Устанавливает приоритет рендеринга для объектов в 3D-сценах. Объекты с более высоким приоритетом будут отсортированы перед объектами с более низким приоритетом. Другими словами, все объекты с render_priority 1 будут отрисовываться поверх всех объектов с render_priority 0.

Примечание: Это применимо только к StandardMaterial3D и ShaderMaterial с типом "Spatial".

Примечание: Это не повлияет на то, как прозрачные объекты сортируются относительно непрозрачных объектов или как динамические сетки будут сортироваться относительно других непрозрачных сеток. Это связано с тем, что все прозрачные объекты отрисовываются после всех непрозрачных объектов, а все динамические непрозрачные сетки отрисовываются до других непрозрачных сеток.


Описания метода

bool _can_do_next_pass() virtual const 🔗

Выводится только с целью переопределения. Эту функцию нельзя вызвать напрямую. Используется внутренне для определения, следует ли показывать next_pass в редакторе или нет.


bool _can_use_render_priority() virtual const 🔗

Выводится только с целью переопределения. Эту функцию нельзя вызвать напрямую. Используется внутренне для определения того, следует ли показывать render_priority в редакторе или нет.


Mode _get_shader_mode() virtual required const 🔗

Только для целей переопределения. Эту функцию нельзя вызвать напрямую. Используется внутри различными инструментами редактора.


RID _get_shader_rid() virtual required const 🔗

Открывается только для переопределения. Эту функцию нельзя вызвать напрямую. Используется внутри различными инструментами редактора. Используется для доступа к RID Shader Material.


Resource create_placeholder() const 🔗

Создает версию-заполнитель этого ресурса (PlaceholderMaterial).


void inspect_native_shader_code() 🔗

Доступно только при запуске в редакторе. Открывает всплывающее окно, визуализирующее сгенерированный код шейдера, включая все варианты и внутренний код шейдера. См. также Shader.inspect_native_shader_code().