: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/VisualShaderNodeColorOp.xml. .. _class_VisualShaderNodeColorOp: VisualShaderNodeColorOp ======================= **Inherits:** :ref:`VisualShaderNode` **<** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` A :ref:`Color` operator to be used within the visual shader graph. .. rst-class:: classref-introduction-group Description ----------- Applies :ref:`operator` to two color inputs. .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +--------------------------------------------------------+------------------------------------------------------------------+-------+ | :ref:`Operator` | :ref:`operator` | ``0`` | +--------------------------------------------------------+------------------------------------------------------------------+-------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_VisualShaderNodeColorOp_Operator: .. rst-class:: classref-enumeration enum **Operator**: :ref:`🔗` .. _class_VisualShaderNodeColorOp_constant_OP_SCREEN: .. rst-class:: classref-enumeration-constant :ref:`Operator` **OP_SCREEN** = ``0`` Produce a screen effect with the following formula: :: result = vec3(1.0) - (vec3(1.0) - a) * (vec3(1.0) - b); .. _class_VisualShaderNodeColorOp_constant_OP_DIFFERENCE: .. rst-class:: classref-enumeration-constant :ref:`Operator` **OP_DIFFERENCE** = ``1`` Produce a difference effect with the following formula: :: result = abs(a - b); .. _class_VisualShaderNodeColorOp_constant_OP_DARKEN: .. rst-class:: classref-enumeration-constant :ref:`Operator` **OP_DARKEN** = ``2`` Produce a darken effect with the following formula: :: result = min(a, b); .. _class_VisualShaderNodeColorOp_constant_OP_LIGHTEN: .. rst-class:: classref-enumeration-constant :ref:`Operator` **OP_LIGHTEN** = ``3`` Produce a lighten effect with the following formula: :: result = max(a, b); .. _class_VisualShaderNodeColorOp_constant_OP_OVERLAY: .. rst-class:: classref-enumeration-constant :ref:`Operator` **OP_OVERLAY** = ``4`` Produce an overlay effect with the following formula: :: for (int i = 0; i < 3; i++) { float base = a[i]; float blend = b[i]; if (base < 0.5) { result[i] = 2.0 * base * blend; } else { result[i] = 1.0 - 2.0 * (1.0 - blend) * (1.0 - base); } } .. _class_VisualShaderNodeColorOp_constant_OP_DODGE: .. rst-class:: classref-enumeration-constant :ref:`Operator` **OP_DODGE** = ``5`` Produce a dodge effect with the following formula: :: result = a / (vec3(1.0) - b); .. _class_VisualShaderNodeColorOp_constant_OP_BURN: .. rst-class:: classref-enumeration-constant :ref:`Operator` **OP_BURN** = ``6`` Produce a burn effect with the following formula: :: result = vec3(1.0) - (vec3(1.0) - a) / b; .. _class_VisualShaderNodeColorOp_constant_OP_SOFT_LIGHT: .. rst-class:: classref-enumeration-constant :ref:`Operator` **OP_SOFT_LIGHT** = ``7`` Produce a soft light effect with the following formula: :: for (int i = 0; i < 3; i++) { float base = a[i]; float blend = b[i]; if (base < 0.5) { result[i] = base * (blend + 0.5); } else { result[i] = 1.0 - (1.0 - base) * (1.0 - (blend - 0.5)); } } .. _class_VisualShaderNodeColorOp_constant_OP_HARD_LIGHT: .. rst-class:: classref-enumeration-constant :ref:`Operator` **OP_HARD_LIGHT** = ``8`` Produce a hard light effect with the following formula: :: for (int i = 0; i < 3; i++) { float base = a[i]; float blend = b[i]; if (base < 0.5) { result[i] = base * (2.0 * blend); } else { result[i] = 1.0 - (1.0 - base) * (1.0 - 2.0 * (blend - 0.5)); } } .. _class_VisualShaderNodeColorOp_constant_OP_MAX: .. rst-class:: classref-enumeration-constant :ref:`Operator` **OP_MAX** = ``9`` Represents the size of the :ref:`Operator` enum. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_VisualShaderNodeColorOp_property_operator: .. rst-class:: classref-property :ref:`Operator` **operator** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_operator**\ (\ value\: :ref:`Operator`\ ) - :ref:`Operator` **get_operator**\ (\ ) An operator to be applied to the inputs. See :ref:`Operator` for options. .. |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.)`