:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/3.5/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/3.5/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. 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. Tutorials --------- - :doc:`../tutorials/shaders/visual_shaders` Properties ---------- +-----------------------+-----------------------------------------------------------------------------------------+--------+ | :ref:`int` | :ref:`output_port_for_preview` | ``-1`` | +-----------------------+-----------------------------------------------------------------------------------------+--------+ Methods ------- +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :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 **)** | +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Signals ------- .. _class_VisualShaderNode_signal_editor_refresh_request: - **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). Enumerations ------------ .. _enum_VisualShaderNode_PortType: .. _class_VisualShaderNode_constant_PORT_TYPE_SCALAR: .. _class_VisualShaderNode_constant_PORT_TYPE_VECTOR: .. _class_VisualShaderNode_constant_PORT_TYPE_BOOLEAN: .. _class_VisualShaderNode_constant_PORT_TYPE_TRANSFORM: .. _class_VisualShaderNode_constant_PORT_TYPE_SAMPLER: .. _class_VisualShaderNode_constant_PORT_TYPE_MAX: enum **PortType**: - **PORT_TYPE_SCALAR** = **0** --- Floating-point scalar. Translated to ``float`` type in shader code. - **PORT_TYPE_VECTOR** = **1** --- 3D vector of floating-point values. Translated to ``vec3`` type in shader code. - **PORT_TYPE_BOOLEAN** = **2** --- Boolean type. Translated to ``bool`` type in shader code. - **PORT_TYPE_TRANSFORM** = **3** --- Transform type. Translated to ``mat4`` type in shader code. - **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. - **PORT_TYPE_MAX** = **5** --- Represents the size of the :ref:`PortType` enum. Property Descriptions --------------------- .. _class_VisualShaderNode_property_output_port_for_preview: - :ref:`int` **output_port_for_preview** +-----------+------------------------------------+ | *Default* | ``-1`` | +-----------+------------------------------------+ | *Setter* | set_output_port_for_preview(value) | +-----------+------------------------------------+ | *Getter* | 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. Method Descriptions ------------------- .. _class_VisualShaderNode_method_get_default_input_values: - :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, ...]``. ---- .. _class_VisualShaderNode_method_get_input_port_default_value: - :ref:`Variant` **get_input_port_default_value** **(** :ref:`int` port **)** |const| Returns the default value of the input ``port``. ---- .. _class_VisualShaderNode_method_set_default_input_values: - 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)]``. ---- .. _class_VisualShaderNode_method_set_input_port_default_value: - 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.)`