VisualShader
Наследует: Shader < Resource < RefCounted < Object
Пользовательская шейдерная программа с визуальным редактором.
Описание
Этот класс предоставляет графический визуальный редактор для создания Shader. Хотя VisualShader не требуют кодирования, они разделяют ту же логику с шейдерами скриптов. Они используют VisualShaderNode, которые могут быть соединены друг с другом для управления потоком шейдера. Граф визуального шейдера преобразуется в шейдер скрипта за кулисами.
Обучающие материалы
Свойства
Методы
void |
add_node(type: Type, node: VisualShaderNode, position: Vector2, id: int) |
void |
add_varying(name: String, mode: VaryingMode, type: VaryingType) |
void |
attach_node_to_frame(type: Type, id: int, frame: int) |
can_connect_nodes(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) const |
|
connect_nodes(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) |
|
void |
connect_nodes_forced(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) |
void |
detach_node_from_frame(type: Type, id: int) |
void |
disconnect_nodes(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) |
get_node_connections(type: Type) const |
|
get_node_list(type: Type) const |
|
get_node_position(type: Type, id: int) const |
|
get_valid_node_id(type: Type) const |
|
has_varying(name: String) const |
|
is_node_connection(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) const |
|
void |
remove_node(type: Type, id: int) |
void |
remove_varying(name: String) |
void |
replace_node(type: Type, id: int, new_class: StringName) |
void |
|
void |
set_node_position(type: Type, id: int, position: Vector2) |
Перечисления
enum Type: 🔗
Type TYPE_VERTEX = 0
Вершинный шейдер, работающий с вершинами.
Type TYPE_FRAGMENT = 1
Фрагментный шейдер, работающий с фрагментами (пикселями).
Type TYPE_LIGHT = 2
Шейдер для расчета освещения.
Type TYPE_START = 3
Функция для «стартового» этапа шейдера частиц.
Type TYPE_PROCESS = 4
Функция для этапа «обработки» шейдера частиц.
Type TYPE_COLLIDE = 5
Функция для этапа «столкновения» (обработчик столкновений частиц) шейдера частиц.
Type TYPE_START_CUSTOM = 6
Функция для «стартового» этапа шейдера частиц с настраиваемым выводом.
Type TYPE_PROCESS_CUSTOM = 7
Функция для этапа «обработки» шейдера частиц с настраиваемым выводом.
Type TYPE_SKY = 8
Шейдер для неба трехмерной среды.
Type TYPE_FOG = 9
Вычислительный шейдер, который запускается для каждого фрокселя карты объемного тумана.
Type TYPE_MAX = 10
Представляет размер перечисления Type.
enum VaryingMode: 🔗
VaryingMode VARYING_MODE_VERTEX_TO_FRAG_LIGHT = 0
Переменная передается из функции Vertex в функции Fragment и Light.
VaryingMode VARYING_MODE_FRAG_TO_LIGHT = 1
Переменная передается из функции Fragment в функцию Light.
VaryingMode VARYING_MODE_MAX = 2
Представляет размер перечисления VaryingMode.
enum VaryingType: 🔗
VaryingType VARYING_TYPE_FLOAT = 0
Varying имеет тип float.
VaryingType VARYING_TYPE_INT = 1
Varying имеет тип int.
VaryingType VARYING_TYPE_UINT = 2
Varying имеет тип unsigned int.
VaryingType VARYING_TYPE_VECTOR_2D = 3
Varying имеет тип Vector2.
VaryingType VARYING_TYPE_VECTOR_3D = 4
Varying имеет тип Vector3.
VaryingType VARYING_TYPE_VECTOR_4D = 5
Varying имеет тип Vector4.
VaryingType VARYING_TYPE_BOOLEAN = 6
Varying имеет тип bool.
VaryingType VARYING_TYPE_TRANSFORM = 7
Varying имеет тип Transform3D.
VaryingType VARYING_TYPE_MAX = 8
Представляет размер перечисления VaryingType.
Константы
NODE_ID_INVALID = -1 🔗
Указывает на недопустимый узел VisualShader.
NODE_ID_OUTPUT = 0 🔗
Указывает выходной узел VisualShader.
Описания свойств
Устарело: This property does nothing and always equals to zero.
Устарело.
Описания метода
void add_node(type: Type, node: VisualShaderNode, position: Vector2, id: int) 🔗
Добавляет указанный node в шейдер.
void add_varying(name: String, mode: VaryingMode, type: VaryingType) 🔗
Добавляет в шейдер новый узел переменного значения.
void attach_node_to_frame(type: Type, id: int, frame: int) 🔗
Прикрепляет указанный узел к указанному фрейму.
bool can_connect_nodes(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) const 🔗
Возвращает true, если указанные узлы и порты могут быть соединены вместе.
Error connect_nodes(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) 🔗
Соединяет указанные узлы и порты.
void connect_nodes_forced(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) 🔗
Подключает указанные узлы и порты, даже если они не могут быть подключены. Такое подключение недействительно и не будет работать должным образом.
void detach_node_from_frame(type: Type, id: int) 🔗
Отсоединяет указанный узел от фрейма, к которому он прикреплен.
void disconnect_nodes(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) 🔗
Соединяет указанные узлы и порты.
VisualShaderNode get_node(type: Type, id: int) const 🔗
Возвращает экземпляр узла шейдера с указанными type и id.
Array[Dictionary] get_node_connections(type: Type) const 🔗
Возвращает список подключенных узлов указанного типа.
PackedInt32Array get_node_list(type: Type) const 🔗
Возвращает список всех узлов шейдера указанного типа.
Vector2 get_node_position(type: Type, id: int) const 🔗
Возвращает положение указанного узла в графе шейдера.
int get_valid_node_id(type: Type) const 🔗
Возвращает следующий действительный ID узла, который можно добавить в граф шейдера.
bool has_varying(name: String) const 🔗
Возвращает true, если шейдер имеет переменную с указанным name.
bool is_node_connection(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) const 🔗
Возвращает true, если указанный узел и порт существуют.
void remove_node(type: Type, id: int) 🔗
Удаляет указанный узел из шейдера.
void remove_varying(name: String) 🔗
Удаляет узел переменного значения с указанным name. Выводит ошибку, если узел с таким именем не найден.
void replace_node(type: Type, id: int, new_class: StringName) 🔗
Заменяет указанный узел узлом нового типа класса.
Устанавливает режим этого шейдера.
void set_node_position(type: Type, id: int, position: Vector2) 🔗
Устанавливает положение указанного узла.