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 TYPE_VERTEX = 0

A vertex shader, operating on vertices.

Type TYPE_FRAGMENT = 1

A fragment shader, operating on fragments (pixels).

Type TYPE_LIGHT = 2

A shader for light calculations.

Type TYPE_MAX = 3

Represents the size of the Type enum.


Constants

NODE_ID_INVALID = -1

NODE_ID_OUTPUT = 0


Property Descriptions

Vector2 graph_offset = Vector2( 0, 0 )

  • void set_graph_offset ( Vector2 value )

  • Vector2 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

There is currently no description for this method. Please help us by contributing one!


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.