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.
Checking the stable version of the documentation...
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
Шейдер для 3D середовища небо.
Type TYPE_FOG = 9
Ускладнений шейдер, який працює для кожного флоксаля карти об'ємної фольги.
Type TYPE_TEXTURE_BLIT = 10
Шейдер, що використовується для обробки викликів blit до DrawableTexture.
Type TYPE_MAX = 11
Представляє розмір переліку Type.
enum VaryingMode: 🔗
VaryingMode VARYING_MODE_VERTEX_TO_FRAG_LIGHT = 0
Varying пропускається з функцій Vertex до Fragment і Light.
VaryingMode VARYING_MODE_FRAG_TO_LIGHT = 1
Varying пропускається з Fragment функція Light.
VaryingMode VARYING_MODE_MAX = 2
Представляємо розмір VaryingMode enum.
enum VaryingType: 🔗
VaryingType VARYING_TYPE_FLOAT = 0
Варирування типу float.
VaryingType VARYING_TYPE_INT = 1
Варирування типу int.
VaryingType VARYING_TYPE_UINT = 2
Варирування типу не позначено int.
VaryingType VARYING_TYPE_VECTOR_2D = 3
Варирування типу Vector2.
VaryingType VARYING_TYPE_VECTOR_3D = 4
Варирування типу Vector3.
VaryingType VARYING_TYPE_VECTOR_4D = 5
Варирування типу Vector4.
VaryingType VARYING_TYPE_BOOLEAN = 6
Варирування типу bool.
VaryingType VARYING_TYPE_TRANSFORM = 7
Різне є типу Transform3D.
VaryingType VARYING_TYPE_MAX = 8
Представляємо розмір VaryingType enum.
Константи
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 🔗
Повертає наступний ідентифікатор вузла, який може бути доданий до графа шейра.
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) 🔗
Встановлює положення зазначеного вузла.