VisualShader

Inherits: Shader < Resource < Reference < Object

A custom shader program with a visual editor.

Description

This class allows you to define a custom shader program that can be used for various materials to render objects.

The visual shader editor creates the shader.

Properties

Vector2 graph_offset Vector2( 0, 0 )

Methods

void add_node ( Type type, VisualShaderNode node, Vector2 position, int id )
bool can_connect_nodes ( Type type, int from_node, int from_port, int to_node, int to_port ) const
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 )
void disconnect_nodes ( Type type, int from_node, int from_port, int to_node, int to_port )
VisualShaderNode get_node ( Type type, int id ) const
Array get_node_connections ( Type type ) const
PoolIntArray get_node_list ( Type type ) const
Vector2 get_node_position ( Type type, int id ) const
int get_valid_node_id ( Type type ) const
bool is_node_connection ( Type type, int from_node, int from_port, int to_node, int to_port ) const
void remove_node ( Type type, int id )
void set_mode ( Mode mode )
void set_node_position ( Type type, int id, Vector2 position )

Enumerations

enum Type:

  • TYPE_VERTEX = 0 --- A vertex shader, operating on vertices.
  • TYPE_FRAGMENT = 1 --- A fragment shader, operating on fragments (pixels).
  • TYPE_LIGHT = 2 --- A shader for light calculations.
  • TYPE_MAX = 3 --- Represents the size of the Type enum.

Constants

  • NODE_ID_INVALID = -1
  • NODE_ID_OUTPUT = 0

Property Descriptions

Vector2 graph_offset

Default Vector2( 0, 0 )
Setter set_graph_offset(value)
Getter get_graph_offset()

The offset vector of the whole graph.

Method Descriptions

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

Adds the specified node to the shader.

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

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 )

Connects the specified nodes and ports.

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 )

Connects the specified nodes and ports.

VisualShaderNode get_node ( Type type, int id ) const

Returns the shader node instance with specified type and id.

Array get_node_connections ( Type type ) const

Returns the list of connected nodes with the specified type.

PoolIntArray get_node_list ( Type type ) const

Returns the list of all nodes in the shader with the specified type.

Vector2 get_node_position ( Type type, int id ) const

Returns the position of the specified node within the shader graph.

int get_valid_node_id ( Type type ) const

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

Returns true if the specified node and port connection exist.

void remove_node ( Type type, int id )

Removes the specified node from the shader.

void set_mode ( Mode mode )

Sets the mode of this shader.

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

Sets the position of the specified node.

© 2014–2020 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.
https://docs.godotengine.org/en/3.2/classes/class_visualshader.html