: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:`VisualShaderNodeDotProduct`, :ref:`VisualShaderNodeFloatFunc`, :ref:`VisualShaderNodeFloatOp`, :ref:`VisualShaderNodeFresnel`, :ref:`VisualShaderNodeIf`, :ref:`VisualShaderNodeInput`, :ref:`VisualShaderNodeIntFunc`, :ref:`VisualShaderNodeIntOp`, :ref:`VisualShaderNodeIs`, :ref:`VisualShaderNodeMix`, :ref:`VisualShaderNodeMultiplyAdd`, :ref:`VisualShaderNodeOuterProduct`, :ref:`VisualShaderNodeOutput`, :ref:`VisualShaderNodeParticleAccelerator`, :ref:`VisualShaderNodeParticleConeVelocity`, :ref:`VisualShaderNodeParticleEmit`, :ref:`VisualShaderNodeParticleEmitter`, :ref:`VisualShaderNodeParticleMultiplyByAxisAngle`, :ref:`VisualShaderNodeParticleRandomness`, :ref:`VisualShaderNodeResizableBase`, :ref:`VisualShaderNodeSDFRaymarch`, :ref:`VisualShaderNodeSDFToScreenUV`, :ref:`VisualShaderNodeSample3D`, :ref:`VisualShaderNodeScreenUVToSDF`, :ref:`VisualShaderNodeSmoothStep`, :ref:`VisualShaderNodeStep`, :ref:`VisualShaderNodeSwitch`, :ref:`VisualShaderNodeTexture`, :ref:`VisualShaderNodeTextureSDF`, :ref:`VisualShaderNodeTextureSDFNormal`, :ref:`VisualShaderNodeTransformCompose`, :ref:`VisualShaderNodeTransformDecompose`, :ref:`VisualShaderNodeTransformFunc`, :ref:`VisualShaderNodeTransformOp`, :ref:`VisualShaderNodeTransformVecMult`, :ref:`VisualShaderNodeUVFunc`, :ref:`VisualShaderNodeUniform`, :ref:`VisualShaderNodeUniformRef`, :ref:`VisualShaderNodeVarying`, :ref:`VisualShaderNodeVectorBase`, :ref:`VisualShaderNodeVectorRefract` 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:`VisualShaders <../tutorials/shaders/visual_shaders>` Properties ---------- +-----------------------+-----------------------------------------------------------------------------------------+--------+ | :ref:`int` | :ref:`output_port_for_preview` | ``-1`` | +-----------------------+-----------------------------------------------------------------------------------------+--------+ Methods ------- +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`clear_default_input_values` **(** **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`get_default_input_values` **(** **)** |const| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`get_input_port_default_value` **(** :ref:`int` port **)** |const| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`remove_input_port_default_value` **(** :ref:`int` port **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_default_input_values` **(** :ref:`Array` values **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_input_port_default_value` **(** :ref:`int` port, :ref:`Variant` value, :ref:`Variant` prev_value=null **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 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_SCALAR_INT: .. _class_VisualShaderNode_constant_PORT_TYPE_VECTOR_2D: .. _class_VisualShaderNode_constant_PORT_TYPE_VECTOR_3D: .. _class_VisualShaderNode_constant_PORT_TYPE_VECTOR_4D: .. _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_SCALAR_INT** = **1** --- Integer scalar. Translated to ``int`` type in shader code. - **PORT_TYPE_VECTOR_2D** = **2** --- 2D vector of floating-point values. Translated to ``vec2`` type in shader code. - **PORT_TYPE_VECTOR_3D** = **3** --- 3D vector of floating-point values. Translated to ``vec3`` type in shader code. - **PORT_TYPE_VECTOR_4D** = **4** --- 4D vector of floating-point values. Translated to ``vec4`` type in shader code. - **PORT_TYPE_BOOLEAN** = **5** --- Boolean type. Translated to ``bool`` type in shader code. - **PORT_TYPE_TRANSFORM** = **6** --- Transform type. Translated to ``mat4`` type in shader code. - **PORT_TYPE_SAMPLER** = **7** --- 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** = **8** --- 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_clear_default_input_values: - void **clear_default_input_values** **(** **)** Clears the default input ports value. ---- .. _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_remove_input_port_default_value: - void **remove_input_port_default_value** **(** :ref:`int` port **)** Removes 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, :ref:`Variant` prev_value=null **)** 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.)`