Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

ShaderMaterial

Успадковує: Material < Resource < RefCounted < Object

Матеріал, визначений за індивідуальною програмою Shader та значеннями параметрів його шейдера.

Опис

Матеріал, який використовує користувацьку програму Shader, щоб надати візуальні елементи (полотні елементи, сітки, лижі, тумани), або для обробки частинок. У порівнянні з іншими матеріалами, ShaderMaterial надає більш глибокий контроль над створеним кодом шейра. Для отримання більш детальної інформації див. індекс документації тінейджерів нижче.

Кілька ShaderMaterials може використовувати той же шейдер і налаштовувати різні значення для формувальних уніформ.

Примітка: З причин виконання Resource.changed сигнал, що видається тільки при зміні ресурсу.resource_name. Тільки в редакторі, він також використовується для змін shader.

Посібники

Властивості

Shader

shader

Методи

Variant

get_shader_parameter(param: StringName) const

void

set_shader_parameter(param: StringName, value: Variant)


Описи властивостей

Shader shader 🔗

Програма Shader використовується для рендерингу цього матеріалу.


Описи методів

Variant get_shader_parameter(param: StringName) const 🔗

Повертає поточний набір значення для цього матеріалу уніформи в тіні.


void set_shader_parameter(param: StringName, value: Variant) 🔗

Змінює значення, встановлене для цього матеріалу уніформи в шейдері.

Примітка: param чутливий до регістру та має точно збігатися з назвою уніформи в коді (не з назвою, написаною з великої літери в інспекторі).

Примітка: Зміни до уніформи шейдера будуть чинними для всіх екземплярів, що використовують цей ShaderMaterial. Щоб запобігти цьому, використовуйте уніформи для кожного екземпляра з CanvasItem.set_instance_shader_parameter(), GeometryInstance3D.set_instance_shader_parameter() або дублюйте ресурс ShaderMaterial за допомогою Resource.duplicate(). Уніформи для кожного екземпляра дозволяють краще повторно використовувати шейдери і, отже, швидші, тому їм слід надавати перевагу над дублюванням ShaderMaterial, коли це можливо.