A custom shader program with a visual editor. This class provides a graph-like visual editor for creating a [Shader]. Although [VisualShader]s do not require coding, they share the same logic with script shaders. They use [VisualShaderNode]s 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. $DOCS_URL/tutorials/shaders/visual_shaders.html Adds the specified [param node] to the shader. Adds a new varying value node to the shader. Attaches the given node to the given frame. Returns [code]true[/code] if the specified nodes and ports can be connected together. Connects the specified nodes and ports. Connects the specified nodes and ports, even if they can't be connected. Such connection is invalid and will not function properly. Detaches the given node from the frame it is attached to. Connects the specified nodes and ports. Returns the shader node instance with specified [param type] and [param id]. Returns the list of connected nodes with the specified type. Returns the list of all nodes in the shader with the specified type. Returns the position of the specified node within the shader graph. Returns next valid node ID that can be added to the shader graph. Returns [code]true[/code] if the shader has a varying with the given [param name]. Returns [code]true[/code] if the specified node and port connection exist. Removes the specified node from the shader. Removes a varying value node with the given [param name]. Prints an error if a node with this name is not found. Replaces the specified node with a node of new class type. Sets the mode of this shader. Sets the position of the specified node. The offset vector of the whole graph. A vertex shader, operating on vertices. A fragment shader, operating on fragments (pixels). A shader for light calculations. A function for the "start" stage of particle shader. A function for the "process" stage of particle shader. A function for the "collide" stage (particle collision handler) of particle shader. A function for the "start" stage of particle shader, with customized output. A function for the "process" stage of particle shader, with customized output. A shader for 3D environment's sky. A compute shader that runs for each froxel of the volumetric fog map. Represents the size of the [enum Type] enum. Varying is passed from [code]Vertex[/code] function to [code]Fragment[/code] and [code]Light[/code] functions. Varying is passed from [code]Fragment[/code] function to [code]Light[/code] function. Represents the size of the [enum VaryingMode] enum. Varying is of type [float]. Varying is of type [int]. Varying is of type unsigned [int]. Varying is of type [Vector2]. Varying is of type [Vector3]. Varying is of type [Vector4]. Varying is of type [bool]. Varying is of type [Transform3D]. Represents the size of the [enum VaryingType] enum. Indicates an invalid [VisualShader] node. Indicates an output node of [VisualShader].