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) 🔗
Changes the value set for this material of a uniform in the shader.
Note: param is case-sensitive and must match the name of the uniform in the code exactly (not the capitalized name in the inspector).
Note: Changes to the shader uniform will be effective on all instances using this ShaderMaterial. To prevent this, use per-instance uniforms with CanvasItem.set_instance_shader_parameter(), GeometryInstance3D.set_instance_shader_parameter() or duplicate the ShaderMaterial resource using Resource.duplicate(). Per-instance uniforms allow for better shader reuse and are therefore faster, so they should be preferred over duplicating the ShaderMaterial when possible.