VisualShader

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

Користувальницька програма з візуальним редактором.

Опис

Цей клас надає графічний візуальний редактор для створення Shader. Хоча VisualShader не вимагають кодування, вони діляться однаковою логікою з сценарними відтінками. Вони використовують VisualShaderNode, які можна підключити один до одного, щоб контролювати потік тіні. Візуальний шейдер граф перетворюється на шейдер сценарію за сценаріями.

Посібники

Властивості

Vector2

graph_offset

Методи

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)

bool

can_connect_nodes(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) const

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

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

bool

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

set_mode(mode: Mode)

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_MAX = 10

Представляє розмір переліку 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.


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

Vector2 graph_offset 🔗

Застаріло: 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_mode(mode: Mode) 🔗

Встановлює режим цього відтінку.


void set_node_position(type: Type, id: int, position: Vector2) 🔗

Встановлює положення зазначеного вузла.