:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/3.6/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/VisualShaderNode.xml. .. _class_VisualShaderNode: VisualShaderNode ================ **Inherits:** :ref:`Resource` **<** :ref:`Reference` **<** :ref:`Object` **Inherited By:** :ref:`VisualShaderNodeBooleanConstant`, :ref:`VisualShaderNodeColorConstant`, :ref:`VisualShaderNodeColorFunc`, :ref:`VisualShaderNodeColorOp`, :ref:`VisualShaderNodeCompare`, :ref:`VisualShaderNodeCubeMap`, :ref:`VisualShaderNodeCustom`, :ref:`VisualShaderNodeDeterminant`, :ref:`VisualShaderNodeDotProduct`, :ref:`VisualShaderNodeFaceForward`, :ref:`VisualShaderNodeFresnel`, :ref:`VisualShaderNodeGroupBase`, :ref:`VisualShaderNodeIf`, :ref:`VisualShaderNodeInput`, :ref:`VisualShaderNodeIs`, :ref:`VisualShaderNodeOuterProduct`, :ref:`VisualShaderNodeOutput`, :ref:`VisualShaderNodeScalarClamp`, :ref:`VisualShaderNodeScalarConstant`, :ref:`VisualShaderNodeScalarDerivativeFunc`, :ref:`VisualShaderNodeScalarFunc`, :ref:`VisualShaderNodeScalarInterp`, :ref:`VisualShaderNodeScalarOp`, :ref:`VisualShaderNodeScalarSmoothStep`, :ref:`VisualShaderNodeSwitch`, :ref:`VisualShaderNodeTexture`, :ref:`VisualShaderNodeTransformCompose`, :ref:`VisualShaderNodeTransformConstant`, :ref:`VisualShaderNodeTransformDecompose`, :ref:`VisualShaderNodeTransformFunc`, :ref:`VisualShaderNodeTransformMult`, :ref:`VisualShaderNodeTransformVecMult`, :ref:`VisualShaderNodeUniform`, :ref:`VisualShaderNodeUniformRef`, :ref:`VisualShaderNodeVec3Constant`, :ref:`VisualShaderNodeVectorClamp`, :ref:`VisualShaderNodeVectorCompose`, :ref:`VisualShaderNodeVectorDecompose`, :ref:`VisualShaderNodeVectorDerivativeFunc`, :ref:`VisualShaderNodeVectorDistance`, :ref:`VisualShaderNodeVectorFunc`, :ref:`VisualShaderNodeVectorInterp`, :ref:`VisualShaderNodeVectorLen`, :ref:`VisualShaderNodeVectorOp`, :ref:`VisualShaderNodeVectorRefract`, :ref:`VisualShaderNodeVectorScalarMix`, :ref:`VisualShaderNodeVectorScalarSmoothStep`, :ref:`VisualShaderNodeVectorScalarStep`, :ref:`VisualShaderNodeVectorSmoothStep` Base class for nodes in a visual shader graph. .. 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 has also connection ports that allow to connect it to another nodes and control the flow of the shader. .. rst-class:: classref-introduction-group Tutorials --------- - :doc:`../tutorials/shaders/visual_shaders` .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +-----------------------+-----------------------------------------------------------------------------------------+--------+ | :ref:`int` | :ref:`output_port_for_preview` | ``-1`` | +-----------------------+-----------------------------------------------------------------------------------------+--------+ .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`get_default_input_values` **(** **)** |const| | +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`get_input_port_default_value` **(** :ref:`int` port **)** |const| | +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_default_input_values` **(** :ref:`Array` values **)** | +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_input_port_default_value` **(** :ref:`int` port, :ref:`Variant` value **)** | +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Signals ------- .. _class_VisualShaderNode_signal_editor_refresh_request: .. rst-class:: classref-signal **editor_refresh_request** **(** **)** Emitted when the node requests an editor refresh. Currently called only in setter of :ref:`VisualShaderNodeTexture.source`, :ref:`VisualShaderNodeTexture`, and :ref:`VisualShaderNodeCubeMap` (and their derivatives). .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_VisualShaderNode_PortType: .. rst-class:: classref-enumeration enum **PortType**: .. _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_VECTOR: .. rst-class:: classref-enumeration-constant :ref:`PortType` **PORT_TYPE_VECTOR** = ``1`` 3D vector of floating-point values. Translated to ``vec3`` type in shader code. .. _class_VisualShaderNode_constant_PORT_TYPE_BOOLEAN: .. rst-class:: classref-enumeration-constant :ref:`PortType` **PORT_TYPE_BOOLEAN** = ``2`` 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** = ``3`` 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** = ``4`` 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** = ``5`` Represents the size of the :ref:`PortType` enum. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_VisualShaderNode_property_output_port_for_preview: .. rst-class:: classref-property :ref:`int` **output_port_for_preview** = ``-1`` .. rst-class:: classref-property-setget - void **set_output_port_for_preview** **(** :ref:`int` value **)** - :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_get_default_input_values: .. rst-class:: classref-method :ref:`Array` **get_default_input_values** **(** **)** |const| 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** **(** :ref:`int` port **)** |const| Returns 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** **(** :ref:`Array` values **)** 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** **(** :ref:`int` port, :ref:`Variant` value **)** 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.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`