ShaderMaterial
Наследует: Material < Resource < RefCounted < Object
Материал, определенный пользовательской программой Shader и значениями ее параметров шейдера.
Описание
Материал, который использует пользовательскую программу Shader для рендеринга визуальных элементов (эл. холста, сеток, неба, тумана) или для обработки частиц. По сравнению с другими материалами ShaderMaterial обеспечивает более глубокий контроль над сгенерированным кодом шейдера. Для получения дополнительной информации см. индекс документации шейдеров ниже.
Несколько ShaderMaterial могут использовать один и тот же шейдер и настраивать разные значения для униформ шейдера.
Примечание: Из соображений производительности сигнал Resource.changed выдается только при изменении Resource.resource_name. Только в редакторе он также выдается при изменении 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) 🔗
Изменяет значение, заданное для этого материала uniform-переменной в шейдере.
Примечание: param чувствителен к регистру и должен точно соответствовать имени uniform-переменной в коде (не заглавному имени в инспекторе).
Примечание: Изменения uniform-переменной шейдера будут эффективны для всех экземпляров, использующих этот ShaderMaterial. Чтобы предотвратить это, используйте uniform-переменные для каждого экземпляра с GeometryInstance3D.set_instance_shader_parameter() или дублируйте ресурс ShaderMaterial с помощью Resource.duplicate(). uniform-переменные для каждого экземпляра позволяют лучше повторно использовать шейдер и, следовательно, работают быстрее, поэтому их следует предпочесть дублированию ShaderMaterial, когда это возможно.