: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/VisualShaderNodeDerivativeFunc.xml. .. _class_VisualShaderNodeDerivativeFunc: VisualShaderNodeDerivativeFunc ============================== **Inherits:** :ref:`VisualShaderNode` **<** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` Calculates a derivative within the visual shader graph. .. rst-class:: classref-introduction-group Description ----------- This node is only available in ``Fragment`` and ``Light`` visual shaders. .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +-----------------------------------------------------------------+---------------------------------------------------------------------------+-------+ | :ref:`Function` | :ref:`function` | ``0`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------+-------+ | :ref:`OpType` | :ref:`op_type` | ``0`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------+-------+ | :ref:`Precision` | :ref:`precision` | ``0`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------+-------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_VisualShaderNodeDerivativeFunc_OpType: .. rst-class:: classref-enumeration enum **OpType**: :ref:`🔗` .. _class_VisualShaderNodeDerivativeFunc_constant_OP_TYPE_SCALAR: .. rst-class:: classref-enumeration-constant :ref:`OpType` **OP_TYPE_SCALAR** = ``0`` A floating-point scalar. .. _class_VisualShaderNodeDerivativeFunc_constant_OP_TYPE_VECTOR_2D: .. rst-class:: classref-enumeration-constant :ref:`OpType` **OP_TYPE_VECTOR_2D** = ``1`` A 2D vector type. .. _class_VisualShaderNodeDerivativeFunc_constant_OP_TYPE_VECTOR_3D: .. rst-class:: classref-enumeration-constant :ref:`OpType` **OP_TYPE_VECTOR_3D** = ``2`` A 3D vector type. .. _class_VisualShaderNodeDerivativeFunc_constant_OP_TYPE_VECTOR_4D: .. rst-class:: classref-enumeration-constant :ref:`OpType` **OP_TYPE_VECTOR_4D** = ``3`` A 4D vector type. .. _class_VisualShaderNodeDerivativeFunc_constant_OP_TYPE_MAX: .. rst-class:: classref-enumeration-constant :ref:`OpType` **OP_TYPE_MAX** = ``4`` Represents the size of the :ref:`OpType` enum. .. rst-class:: classref-item-separator ---- .. _enum_VisualShaderNodeDerivativeFunc_Function: .. rst-class:: classref-enumeration enum **Function**: :ref:`🔗` .. _class_VisualShaderNodeDerivativeFunc_constant_FUNC_SUM: .. rst-class:: classref-enumeration-constant :ref:`Function` **FUNC_SUM** = ``0`` Sum of absolute derivative in ``x`` and ``y``. .. _class_VisualShaderNodeDerivativeFunc_constant_FUNC_X: .. rst-class:: classref-enumeration-constant :ref:`Function` **FUNC_X** = ``1`` Derivative in ``x`` using local differencing. .. _class_VisualShaderNodeDerivativeFunc_constant_FUNC_Y: .. rst-class:: classref-enumeration-constant :ref:`Function` **FUNC_Y** = ``2`` Derivative in ``y`` using local differencing. .. _class_VisualShaderNodeDerivativeFunc_constant_FUNC_MAX: .. rst-class:: classref-enumeration-constant :ref:`Function` **FUNC_MAX** = ``3`` Represents the size of the :ref:`Function` enum. .. rst-class:: classref-item-separator ---- .. _enum_VisualShaderNodeDerivativeFunc_Precision: .. rst-class:: classref-enumeration enum **Precision**: :ref:`🔗` .. _class_VisualShaderNodeDerivativeFunc_constant_PRECISION_NONE: .. rst-class:: classref-enumeration-constant :ref:`Precision` **PRECISION_NONE** = ``0`` No precision is specified, the GPU driver is allowed to use whatever level of precision it chooses. This is the default option and is equivalent to using ``dFdx()`` or ``dFdy()`` in text shaders. .. _class_VisualShaderNodeDerivativeFunc_constant_PRECISION_COARSE: .. rst-class:: classref-enumeration-constant :ref:`Precision` **PRECISION_COARSE** = ``1`` The derivative will be calculated using the current fragment's neighbors (which may not include the current fragment). This tends to be faster than using :ref:`PRECISION_FINE`, but may not be suitable when more precision is needed. This is equivalent to using ``dFdxCoarse()`` or ``dFdyCoarse()`` in text shaders. .. _class_VisualShaderNodeDerivativeFunc_constant_PRECISION_FINE: .. rst-class:: classref-enumeration-constant :ref:`Precision` **PRECISION_FINE** = ``2`` The derivative will be calculated using the current fragment and its immediate neighbors. This tends to be slower than using :ref:`PRECISION_COARSE`, but may be necessary when more precision is needed. This is equivalent to using ``dFdxFine()`` or ``dFdyFine()`` in text shaders. .. _class_VisualShaderNodeDerivativeFunc_constant_PRECISION_MAX: .. rst-class:: classref-enumeration-constant :ref:`Precision` **PRECISION_MAX** = ``3`` Represents the size of the :ref:`Precision` enum. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_VisualShaderNodeDerivativeFunc_property_function: .. rst-class:: classref-property :ref:`Function` **function** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_function**\ (\ value\: :ref:`Function`\ ) - :ref:`Function` **get_function**\ (\ ) A derivative function type. .. rst-class:: classref-item-separator ---- .. _class_VisualShaderNodeDerivativeFunc_property_op_type: .. rst-class:: classref-property :ref:`OpType` **op_type** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_op_type**\ (\ value\: :ref:`OpType`\ ) - :ref:`OpType` **get_op_type**\ (\ ) A type of operands and returned value. .. rst-class:: classref-item-separator ---- .. _class_VisualShaderNodeDerivativeFunc_property_precision: .. rst-class:: classref-property :ref:`Precision` **precision** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_precision**\ (\ value\: :ref:`Precision`\ ) - :ref:`Precision` **get_precision**\ (\ ) Sets the level of precision to use for the derivative function. When using the Compatibility renderer, this setting has no effect. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |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.)`