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.

VisualShader

Hérite de : Shader < Resource < RefCounted < Object

Un programme de shader personnalisé dans l'éditeur visuel.

Description

Cette classe fournit un éditeur visuel en forme de graphe pour créer un Shader. Bien que les VisualShaders ne nécessitent pas de codage, ils partagent la même logique que les shaders en script. Ils utilisent des VisualShaderNodes qui peuvent être connectés l'un à l'autre pour contrôler le flux du shader. Le graphe de shader visuel est converti en shader en script dans les coulisses.

Tutoriels

Propriétés

Vector2

graph_offset

Méthodes

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)


Énumérations

enum Type: 🔗

Type TYPE_VERTEX = 0

Un shader de sommet, s'appliquant sur chacun des sommets.

Type TYPE_FRAGMENT = 1

Un shader de fragment, s'appliquant sur chacun des pixels (fragments).

Type TYPE_LIGHT = 2

Un shader pour les calculs de lumière.

Type TYPE_START = 3

Une fonction pour le stade "start" (départ) du shader de particule.

Type TYPE_PROCESS = 4

Une fonction pour le stade "process" (traitement) du shader de particules.

Type TYPE_COLLIDE = 5

Une fonction pour le stade "collide" (gestionnaire des collisions des particules) du shader de particules.

Type TYPE_START_CUSTOM = 6

Une fonction pour le stade "start" (départ) du shader de particule, avec une sortie personnalisée.

Type TYPE_PROCESS_CUSTOM = 7

Une fonction pour le stade "process" (traitement) du shader de particules, avec une sortie personnalisée.

Type TYPE_SKY = 8

Un shader pour un ciel d'environnement 3D.

Type TYPE_FOG = 9

Un shader de calcul qui s'exécute pour chaque froxel de la carte de brouillard volumétrique.

Type TYPE_TEXTURE_BLIT = 10

A shader used to process blit calls to a DrawableTexture.

Type TYPE_MAX = 11

Représente la taille de l'énumération Type.


enum VaryingMode: 🔗

VaryingMode VARYING_MODE_VERTEX_TO_FRAG_LIGHT = 0

Le varying est passé de la fonction Vertex aux fonctions Fragment et Light.

VaryingMode VARYING_MODE_FRAG_TO_LIGHT = 1

Le varying est passé de la fonction Fragment à la fonction Light.

VaryingMode VARYING_MODE_MAX = 2

Représente la taille de l'énumération VaryingMode.


enum VaryingType: 🔗

VaryingType VARYING_TYPE_FLOAT = 0

Le varying est du type float.

VaryingType VARYING_TYPE_INT = 1

Le varying est du type int.

VaryingType VARYING_TYPE_UINT = 2

Le varying est du type int non signé.

VaryingType VARYING_TYPE_VECTOR_2D = 3

Le varying est de type Vector2.

VaryingType VARYING_TYPE_VECTOR_3D = 4

Le varying est du type Vector3.

VaryingType VARYING_TYPE_VECTOR_4D = 5

Le varying est du type Vector4.

VaryingType VARYING_TYPE_BOOLEAN = 6

Le varying est du type bool.

VaryingType VARYING_TYPE_TRANSFORM = 7

Le varying est du type Transform3D.

VaryingType VARYING_TYPE_MAX = 8

Représente la taille de l'énumération VaryingType.


Constantes

NODE_ID_INVALID = -1 🔗

Indique un nœud VisualShader invalide.

NODE_ID_OUTPUT = 0 🔗

Indique un nœud de sortie du VisualShader.


Descriptions des propriétés

Vector2 graph_offset 🔗

Obsolète : This property does nothing and always equals to zero.

Obsolète.


Descriptions des méthodes

void add_node(type: Type, node: VisualShaderNode, position: Vector2, id: int) 🔗

Ajoute le nœud node spécifié au shader.


void add_varying(name: String, mode: VaryingMode, type: VaryingType) 🔗

Ajoute un nouveau nœud de valeur varying au shader.


void attach_node_to_frame(type: Type, id: int, frame: int) 🔗

Attache le nœud donné au cadre donné.


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

Renvoie true si les nœuds spécifiés et les ports peuvent être connectés ensemble.


Error connect_nodes(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) 🔗

Connecte les nœuds et les ports spécifiés.


void connect_nodes_forced(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) 🔗

Connecte les nœuds et les ports spécifiés, même s'ils ne peuvent pas être connectés. Cette connexion est invalide et ne fonctionnera pas correctement.


void detach_node_from_frame(type: Type, id: int) 🔗

Détache le nœud donné du cadre auquel il est attaché.


void disconnect_nodes(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) 🔗

Connecte les nœuds et les ports spécifiés.


VisualShaderNode get_node(type: Type, id: int) const 🔗

Renvoie l'instance de nœud de shader avec le type type et l'identifiant id spécifiés.


Array[Dictionary] get_node_connections(type: Type) const 🔗

Renvoie la liste des nœuds connectés avec le type spécifié.


PackedInt32Array get_node_list(type: Type) const 🔗

Renvoie la liste de tous les nœuds du shader avec le type spécifié.


Vector2 get_node_position(type: Type, id: int) const 🔗

Renvoie la position du nœud spécifié dans le graphe du shader.


int get_valid_node_id(type: Type) const 🔗

Renvoie le prochain identifiant de nœud valide qui peut être ajouté au graphe de shader.


bool has_varying(name: String) const 🔗

Renvoie true si le shader a un varying avec le nom name donné.


bool is_node_connection(type: Type, from_node: int, from_port: int, to_node: int, to_port: int) const 🔗

Renvoie true si le nœud et le port de connexion spécifiés existent.


void remove_node(type: Type, id: int) 🔗

Retire les nœuds spécifiés du shader.


void remove_varying(name: String) 🔗

Retire un nœud de valeur de varying avec le nom name donné. Affiche une erreur si un nœud avec ce nom n'est pas trouvé.


void replace_node(type: Type, id: int, new_class: StringName) 🔗

Remplace le nœud spécifié avec un nœud du type de la nouvelle classe.


void set_mode(mode: Mode) 🔗

Règle le mode de ce shader.


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

Définit la position du nœud spécifié.