Visual Shader
Visual Shader
Description¶
This class provides a graph-like visual editor for creating a Shader. Although
VisualShaders do not require coding, they share the same logic with script shaders.
They use VisualShaderNodes that can be connected to each other to control the flow of
the shader. The visual shader graph is converted to a script shader behind the scenes.
Tutorials¶
Using VisualShaders
Properties¶
Vector2 graph_offset Vector2(0, 0)
Methods¶
add_node ( Type type, VisualShaderNode node, Vector2 position,
void
int id )
add_varying ( String name, VaryingMode mode, VaryingType type
void
)
can_connect_nodes ( Type type, int from_node, int from_port, int
bool
to_node, int to_port ) const
connect_nodes ( Type type, int from_node, int from_port, int
Error
to_node, int to_port )
connect_nodes_forced ( Type type, int from_node, int from_port,
void
int to_node, int to_port )
disconnect_nodes ( Type type, int from_node, int from_port, int
void
to_node, int to_port )
VisualShaderNode get_node ( Type type, int id ) const
Dictionary[] get_node_connections ( Type type ) const
PackedInt32Array get_node_list ( Type type ) const
Vector2 get_node_position ( Type type, int id ) const
int get_valid_node_id ( Type type ) const
bool has_varying ( String name ) const
is_node_connection ( Type type, int from_node, int from_port, int
bool
to_node, int to_port ) const
void remove_node ( Type type, int id )
void remove_varying ( String name )
void replace_node ( Type type, int id, StringName new_class )
void set_mode ( Mode mode )
void set_node_position ( Type type, int id, Vector2 position )
Enumerations¶
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
A function for the "collide" stage (particle collision handler) of particle shader.
Type TYPE_START_CUSTOM = 6
A function for the "start" stage of particle shader, with customized output.
Type TYPE_PROCESS_CUSTOM = 7
A function for the "process" stage of particle shader, with customized output.
Type TYPE_SKY = 8
Type TYPE_FOG = 9
A compute shader that runs for each froxel of the volumetric fog map.
Type TYPE_MAX = 10
enum VaryingMode:
VaryingMode VARYING_MODE_VERTEX_TO_FRAG_LIGHT = 0
VaryingMode VARYING_MODE_FRAG_TO_LIGHT = 1
VaryingMode VARYING_MODE_MAX = 2
enum VaryingType:
VaryingType VARYING_TYPE_FLOAT = 0
VaryingType VARYING_TYPE_INT = 1
VaryingType VARYING_TYPE_UINT = 2
VaryingType VARYING_TYPE_VECTOR_2D = 3
VaryingType VARYING_TYPE_VECTOR_3D = 4
VaryingType VARYING_TYPE_VECTOR_4D = 5
VaryingType VARYING_TYPE_BOOLEAN = 6
Varying is of type bool.
VaryingType VARYING_TYPE_TRANSFORM = 7
VaryingType VARYING_TYPE_MAX = 8
Constants¶
NODE_ID_INVALID = -1
NODE_ID_OUTPUT = 0
Property Descriptions¶
Vector2 graph_offset = Vector2(0, 0)
Method Descriptions¶
void add_node ( Type type, VisualShaderNode node, Vector2 position, int id )
Returns true if the specified nodes and ports can be connected together.
Error connect_nodes ( Type type, int from_node, int from_port, int to_node, int to_port
)
void connect_nodes_forced ( Type type, int from_node, int from_port, int to_node, int
to_port )
Connects the specified nodes and ports, even if they can't be connected. Such
connection is invalid and will not function properly.
void disconnect_nodes ( Type type, int from_node, int from_port, int to_node, int
to_port )
Returns the shader node instance with specified type and id.
Returns the list of all nodes in the shader with the specified type.
Returns the position of the specified node within the shader graph.
int get_valid_node_id ( Type type ) const
Returns next valid node ID that can be added to the shader graph.
Returns true if the shader has a varying with the given name.
bool is_node_connection ( Type type, int from_node, int from_port, int to_node, int
to_port ) const
Removes a varying value node with the given name. Prints an error if a node with this
name is not found.