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
Eredita: Shader < Resource < RefCounted < Object
Un programma di shader personalizzato con un editor visuale.
Descrizione
Questa classe fornisce un editor visuale di tipo grafico per creare uno Shader. Sebbene i VisualShader non richiedano codice, condividono la stessa logica degli shader di script. Utilizzano VisualShaderNode che possono essere collegati tra loro per controllare il flusso dello shader. Il grafico dello shader visuale viene convertito in uno shader di script internamente.
Tutorial
Proprietà
Metodi
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) |
Enumerazioni
enum Type: 🔗
Type TYPE_VERTEX = 0
Uno shader di vertice, applicato a ciascun vertice.
Type TYPE_FRAGMENT = 1
Uno shader di frammenti, applicato a ogni frammento (pixel).
Type TYPE_LIGHT = 2
Uno shader per i calcoli della luce.
Type TYPE_START = 3
Una funzione per la fase di "avvio" dello shader di particelle.
Type TYPE_PROCESS = 4
Una funzione per la fase di "processo" dello shader di particelle.
Type TYPE_COLLIDE = 5
Una funzione per la fase di "collisione" (gestore delle collisioni di particelle) dello shader di particelle.
Type TYPE_START_CUSTOM = 6
Una funzione per la fase di "avvio" dello shader di particelle, con risultato personalizzato.
Type TYPE_PROCESS_CUSTOM = 7
Una funzione per la fase di "processo" dello shader di particelle, con risultato personalizzato.
Type TYPE_SKY = 8
Uno shader per il cielo di un ambiente 3D.
Type TYPE_FOG = 9
Uno shader di calcolo che viene eseguito per ogni froxel della mappa della nebbia volumetrica.
Type TYPE_TEXTURE_BLIT = 10
A shader used to process blit calls to a DrawableTexture.
Type TYPE_MAX = 11
Rappresenta la dimensione dell'enumerazione Type.
enum VaryingMode: 🔗
VaryingMode VARYING_MODE_VERTEX_TO_FRAG_LIGHT = 0
Il varying è passato dalla funzione Vertex alle funzioni Fragment e Light.
VaryingMode VARYING_MODE_FRAG_TO_LIGHT = 1
Il varying è passato dalla funzione Vertex alla funzione Light.
VaryingMode VARYING_MODE_MAX = 2
Rappresenta la dimensione dell'enumerazione VaryingMode.
enum VaryingType: 🔗
VaryingType VARYING_TYPE_FLOAT = 0
Il varying è di tipo float.
VaryingType VARYING_TYPE_INT = 1
Il varying è di tipo int.
VaryingType VARYING_TYPE_UINT = 2
Il varying è di tipo int senza segno.
VaryingType VARYING_TYPE_VECTOR_2D = 3
Il varying è di tipo Vector2.
VaryingType VARYING_TYPE_VECTOR_3D = 4
Il varying è di tipo Vector3.
VaryingType VARYING_TYPE_VECTOR_4D = 5
Il varying è di tipo Vector4.
VaryingType VARYING_TYPE_BOOLEAN = 6
Il varying è di tipo bool.
VaryingType VARYING_TYPE_TRANSFORM = 7
Il varying è di tipo Transform3D.
VaryingType VARYING_TYPE_MAX = 8
Rappresenta la dimensione dell'enumerazione VaryingType.
Costanti
NODE_ID_INVALID = -1 🔗
Indica un nodo VisualShader non valido.
NODE_ID_OUTPUT = 0 🔗
Indica un nodo di uscita di VisualShader.
Descrizioni delle proprietà
Deprecato: This property does nothing and always equals to zero.
Deprecato.
Descrizioni dei metodi
void add_node(type: Type, node: VisualShaderNode, position: Vector2, id: int) 🔗
Aggiunge il nodo node allo shader.
void add_varying(name: String, mode: VaryingMode, type: VaryingType) 🔗
Aggiunge un nuovo nodo con valore varying allo shader.
void attach_node_to_frame(type: Type, id: int, frame: int) 🔗
Attacca il nodo fornito alla cornice fornita.
bool can_connect_nodes(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) const 🔗
Restituisce true se i nodi e le porte specificati possono essere collegati tra loro.
Error connect_nodes(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) 🔗
Collega i nodi e le porte specificati.
void connect_nodes_forced(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) 🔗
Collega i nodi e le porte specificati, anche se non possono essere collegati. Tale connessione non è valida e non funzionerà correttamente.
void detach_node_from_frame(type: Type, id: int) 🔗
Stacca il nodo fornito dalla cornice a cui è attaccato.
void disconnect_nodes(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) 🔗
Collega i nodi e le porte specificati.
VisualShaderNode get_node(type: Type, id: int) const 🔗
Restituisce l'istanza di nodo shader con il tipo (type) e l'id forniti.
Array[Dictionary] get_node_connections(type: Type) const 🔗
Restituisce la lista dei nodi connessi con il tipo specificato.
PackedInt32Array get_node_list(type: Type) const 🔗
Restituisce la lista di tutti i nodi nello shader con il tipo specificato.
Vector2 get_node_position(type: Type, id: int) const 🔗
Restituisce la posizione del nodo specificato all'interno del grafico dello shader.
int get_valid_node_id(type: Type) const 🔗
Restituisce il prossimo ID nodo valido che può essere aggiunto al grafico dello shader.
bool has_varying(name: String) const 🔗
Restituisce true se lo shader ha una variabile con il nome name.
bool is_node_connection(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) const 🔗
Restituisce true se il nodo e la porta specificati esistono.
void remove_node(type: Type, id: int) 🔗
Rimuove il nodo specificato dallo shader.
void remove_varying(name: String) 🔗
Rimuove un nodo con valore varying con il nome name. Stampa un errore se non viene trovato un nodo con questo nome.
void replace_node(type: Type, id: int, new_class: StringName) 🔗
Sostituisce il nodo specificato con un nodo di nuovo tipo di classe.
Imposta la modalità di questo shader.
void set_node_position(type: Type, id: int, position: Vector2) 🔗
Imposta la posizione del nodo specificato.