:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/VisualShaderNode.xml. .. _class_VisualShaderNode: VisualShaderNode ================ **Inherits:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` **Inherited By:** :ref:`VisualShaderNodeBillboard`, :ref:`VisualShaderNodeClamp`, :ref:`VisualShaderNodeColorFunc`, :ref:`VisualShaderNodeColorOp`, :ref:`VisualShaderNodeCompare`, :ref:`VisualShaderNodeConstant`, :ref:`VisualShaderNodeCubemap`, :ref:`VisualShaderNodeCustom`, :ref:`VisualShaderNodeDerivativeFunc`, :ref:`VisualShaderNodeDeterminant`, :ref:`VisualShaderNodeDistanceFade`, :ref:`VisualShaderNodeDotProduct`, :ref:`VisualShaderNodeFloatFunc`, :ref:`VisualShaderNodeFloatOp`, :ref:`VisualShaderNodeFresnel`, :ref:`VisualShaderNodeIf`, :ref:`VisualShaderNodeInput`, :ref:`VisualShaderNodeIntFunc`, :ref:`VisualShaderNodeIntOp`, :ref:`VisualShaderNodeIs`, :ref:`VisualShaderNodeLinearSceneDepth`, :ref:`VisualShaderNodeMix`, :ref:`VisualShaderNodeMultiplyAdd`, :ref:`VisualShaderNodeOuterProduct`, :ref:`VisualShaderNodeOutput`, :ref:`VisualShaderNodeParameter`, :ref:`VisualShaderNodeParameterRef`, :ref:`VisualShaderNodeParticleAccelerator`, :ref:`VisualShaderNodeParticleConeVelocity`, :ref:`VisualShaderNodeParticleEmit`, :ref:`VisualShaderNodeParticleEmitter`, :ref:`VisualShaderNodeParticleMultiplyByAxisAngle`, :ref:`VisualShaderNodeParticleRandomness`, :ref:`VisualShaderNodeProximityFade`, :ref:`VisualShaderNodeRandomRange`, :ref:`VisualShaderNodeRemap`, :ref:`VisualShaderNodeReroute`, :ref:`VisualShaderNodeResizableBase`, :ref:`VisualShaderNodeRotationByAxis`, :ref:`VisualShaderNodeSample3D`, :ref:`VisualShaderNodeScreenNormalWorldSpace`, :ref:`VisualShaderNodeScreenUVToSDF`, :ref:`VisualShaderNodeSDFRaymarch`, :ref:`VisualShaderNodeSDFToScreenUV`, :ref:`VisualShaderNodeSmoothStep`, :ref:`VisualShaderNodeStep`, :ref:`VisualShaderNodeSwitch`, :ref:`VisualShaderNodeTexture`, :ref:`VisualShaderNodeTextureSDF`, :ref:`VisualShaderNodeTextureSDFNormal`, :ref:`VisualShaderNodeTransformCompose`, :ref:`VisualShaderNodeTransformDecompose`, :ref:`VisualShaderNodeTransformFunc`, :ref:`VisualShaderNodeTransformOp`, :ref:`VisualShaderNodeTransformVecMult`, :ref:`VisualShaderNodeUIntFunc`, :ref:`VisualShaderNodeUIntOp`, :ref:`VisualShaderNodeUVFunc`, :ref:`VisualShaderNodeUVPolarCoord`, :ref:`VisualShaderNodeVarying`, :ref:`VisualShaderNodeVectorBase`, :ref:`VisualShaderNodeWorldPositionFromDepth` Base class for :ref:`VisualShader` nodes. Not related to scene nodes. .. rst-class:: classref-introduction-group Description ----------- Visual shader graphs consist of various nodes. Each node in the graph is a separate object and they are represented as a rectangular boxes with title and a set of properties. Each node also has connection ports that allow to connect it to another nodes and control the flow of the shader. .. rst-class:: classref-introduction-group Tutorials --------- - :doc:`Using VisualShaders <../tutorials/shaders/visual_shaders>` .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +-----------------------+---------------------------------------------------------------------------------------------+--------+ | :ref:`int` | :ref:`linked_parent_graph_frame` | ``-1`` | +-----------------------+---------------------------------------------------------------------------------------------+--------+ | :ref:`int` | :ref:`output_port_for_preview` | ``-1`` | +-----------------------+---------------------------------------------------------------------------------------------+--------+ .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`clear_default_input_values`\ (\ ) | +-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_default_input_port`\ (\ type\: :ref:`PortType`\ ) |const| | +-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`get_default_input_values`\ (\ ) |const| | +-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`get_input_port_default_value`\ (\ port\: :ref:`int`\ ) |const| | +-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`remove_input_port_default_value`\ (\ port\: :ref:`int`\ ) | +-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_default_input_values`\ (\ values\: :ref:`Array`\ ) | +-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_input_port_default_value`\ (\ port\: :ref:`int`, value\: :ref:`Variant`, prev_value\: :ref:`Variant` = null\ ) | +-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_VisualShaderNode_PortType: .. rst-class:: classref-enumeration enum **PortType**: :ref:`🔗` .. _class_VisualShaderNode_constant_PORT_TYPE_SCALAR: .. rst-class:: classref-enumeration-constant :ref:`PortType` **PORT_TYPE_SCALAR** = ``0`` Floating-point scalar. Translated to ``float`` type in shader code. .. _class_VisualShaderNode_constant_PORT_TYPE_SCALAR_INT: .. rst-class:: classref-enumeration-constant :ref:`PortType` **PORT_TYPE_SCALAR_INT** = ``1`` Integer scalar. Translated to ``int`` type in shader code. .. _class_VisualShaderNode_constant_PORT_TYPE_SCALAR_UINT: .. rst-class:: classref-enumeration-constant :ref:`PortType` **PORT_TYPE_SCALAR_UINT** = ``2`` Unsigned integer scalar. Translated to ``uint`` type in shader code. .. _class_VisualShaderNode_constant_PORT_TYPE_VECTOR_2D: .. rst-class:: classref-enumeration-constant :ref:`PortType` **PORT_TYPE_VECTOR_2D** = ``3`` 2D vector of floating-point values. Translated to ``vec2`` type in shader code. .. _class_VisualShaderNode_constant_PORT_TYPE_VECTOR_3D: .. rst-class:: classref-enumeration-constant :ref:`PortType` **PORT_TYPE_VECTOR_3D** = ``4`` 3D vector of floating-point values. Translated to ``vec3`` type in shader code. .. _class_VisualShaderNode_constant_PORT_TYPE_VECTOR_4D: .. rst-class:: classref-enumeration-constant :ref:`PortType` **PORT_TYPE_VECTOR_4D** = ``5`` 4D vector of floating-point values. Translated to ``vec4`` type in shader code. .. _class_VisualShaderNode_constant_PORT_TYPE_BOOLEAN: .. rst-class:: classref-enumeration-constant :ref:`PortType` **PORT_TYPE_BOOLEAN** = ``6`` Boolean type. Translated to ``bool`` type in shader code. .. _class_VisualShaderNode_constant_PORT_TYPE_TRANSFORM: .. rst-class:: classref-enumeration-constant :ref:`PortType` **PORT_TYPE_TRANSFORM** = ``7`` Transform type. Translated to ``mat4`` type in shader code. .. _class_VisualShaderNode_constant_PORT_TYPE_SAMPLER: .. rst-class:: classref-enumeration-constant :ref:`PortType` **PORT_TYPE_SAMPLER** = ``8`` Sampler type. Translated to reference of sampler uniform in shader code. Can only be used for input ports in non-uniform nodes. .. _class_VisualShaderNode_constant_PORT_TYPE_MAX: .. rst-class:: classref-enumeration-constant :ref:`PortType` **PORT_TYPE_MAX** = ``9`` Represents the size of the :ref:`PortType` enum. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_VisualShaderNode_property_linked_parent_graph_frame: .. rst-class:: classref-property :ref:`int` **linked_parent_graph_frame** = ``-1`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_frame**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_frame**\ (\ ) Represents the index of the frame this node is linked to. If set to ``-1`` the node is not linked to any frame. .. rst-class:: classref-item-separator ---- .. _class_VisualShaderNode_property_output_port_for_preview: .. rst-class:: classref-property :ref:`int` **output_port_for_preview** = ``-1`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_output_port_for_preview**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_output_port_for_preview**\ (\ ) Sets the output port index which will be showed for preview. If set to ``-1`` no port will be open for preview. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Method Descriptions ------------------- .. _class_VisualShaderNode_method_clear_default_input_values: .. rst-class:: classref-method |void| **clear_default_input_values**\ (\ ) :ref:`🔗` Clears the default input ports value. .. rst-class:: classref-item-separator ---- .. _class_VisualShaderNode_method_get_default_input_port: .. rst-class:: classref-method :ref:`int` **get_default_input_port**\ (\ type\: :ref:`PortType`\ ) |const| :ref:`🔗` Returns the input port which should be connected by default when this node is created as a result of dragging a connection from an existing node to the empty space on the graph. .. rst-class:: classref-item-separator ---- .. _class_VisualShaderNode_method_get_default_input_values: .. rst-class:: classref-method :ref:`Array` **get_default_input_values**\ (\ ) |const| :ref:`🔗` Returns an :ref:`Array` containing default values for all of the input ports of the node in the form ``[index0, value0, index1, value1, ...]``. .. rst-class:: classref-item-separator ---- .. _class_VisualShaderNode_method_get_input_port_default_value: .. rst-class:: classref-method :ref:`Variant` **get_input_port_default_value**\ (\ port\: :ref:`int`\ ) |const| :ref:`🔗` Returns the default value of the input ``port``. .. rst-class:: classref-item-separator ---- .. _class_VisualShaderNode_method_remove_input_port_default_value: .. rst-class:: classref-method |void| **remove_input_port_default_value**\ (\ port\: :ref:`int`\ ) :ref:`🔗` Removes the default value of the input ``port``. .. rst-class:: classref-item-separator ---- .. _class_VisualShaderNode_method_set_default_input_values: .. rst-class:: classref-method |void| **set_default_input_values**\ (\ values\: :ref:`Array`\ ) :ref:`🔗` Sets the default input ports values using an :ref:`Array` of the form ``[index0, value0, index1, value1, ...]``. For example: ``[0, Vector3(0, 0, 0), 1, Vector3(0, 0, 0)]``. .. rst-class:: classref-item-separator ---- .. _class_VisualShaderNode_method_set_input_port_default_value: .. rst-class:: classref-method |void| **set_input_port_default_value**\ (\ port\: :ref:`int`, value\: :ref:`Variant`, prev_value\: :ref:`Variant` = null\ ) :ref:`🔗` Sets the default ``value`` for the selected input ``port``. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)` .. |void| replace:: :abbr:`void (No return value.)`