class_visualshadernodecolorop.rst 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/VisualShaderNodeColorOp.xml.
  6. .. _class_VisualShaderNodeColorOp:
  7. VisualShaderNodeColorOp
  8. =======================
  9. **Inherits:** :ref:`VisualShaderNode<class_VisualShaderNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
  10. A :ref:`Color<class_Color>` operator to be used within the visual shader graph.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. Applies :ref:`operator<class_VisualShaderNodeColorOp_property_operator>` to two color inputs.
  15. .. rst-class:: classref-reftable-group
  16. Properties
  17. ----------
  18. .. table::
  19. :widths: auto
  20. +--------------------------------------------------------+------------------------------------------------------------------+-------+
  21. | :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>` | :ref:`operator<class_VisualShaderNodeColorOp_property_operator>` | ``0`` |
  22. +--------------------------------------------------------+------------------------------------------------------------------+-------+
  23. .. rst-class:: classref-section-separator
  24. ----
  25. .. rst-class:: classref-descriptions-group
  26. Enumerations
  27. ------------
  28. .. _enum_VisualShaderNodeColorOp_Operator:
  29. .. rst-class:: classref-enumeration
  30. enum **Operator**: :ref:`🔗<enum_VisualShaderNodeColorOp_Operator>`
  31. .. _class_VisualShaderNodeColorOp_constant_OP_SCREEN:
  32. .. rst-class:: classref-enumeration-constant
  33. :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>` **OP_SCREEN** = ``0``
  34. Produce a screen effect with the following formula:
  35. ::
  36. result = vec3(1.0) - (vec3(1.0) - a) * (vec3(1.0) - b);
  37. .. _class_VisualShaderNodeColorOp_constant_OP_DIFFERENCE:
  38. .. rst-class:: classref-enumeration-constant
  39. :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>` **OP_DIFFERENCE** = ``1``
  40. Produce a difference effect with the following formula:
  41. ::
  42. result = abs(a - b);
  43. .. _class_VisualShaderNodeColorOp_constant_OP_DARKEN:
  44. .. rst-class:: classref-enumeration-constant
  45. :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>` **OP_DARKEN** = ``2``
  46. Produce a darken effect with the following formula:
  47. ::
  48. result = min(a, b);
  49. .. _class_VisualShaderNodeColorOp_constant_OP_LIGHTEN:
  50. .. rst-class:: classref-enumeration-constant
  51. :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>` **OP_LIGHTEN** = ``3``
  52. Produce a lighten effect with the following formula:
  53. ::
  54. result = max(a, b);
  55. .. _class_VisualShaderNodeColorOp_constant_OP_OVERLAY:
  56. .. rst-class:: classref-enumeration-constant
  57. :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>` **OP_OVERLAY** = ``4``
  58. Produce an overlay effect with the following formula:
  59. ::
  60. for (int i = 0; i < 3; i++) {
  61. float base = a[i];
  62. float blend = b[i];
  63. if (base < 0.5) {
  64. result[i] = 2.0 * base * blend;
  65. } else {
  66. result[i] = 1.0 - 2.0 * (1.0 - blend) * (1.0 - base);
  67. }
  68. }
  69. .. _class_VisualShaderNodeColorOp_constant_OP_DODGE:
  70. .. rst-class:: classref-enumeration-constant
  71. :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>` **OP_DODGE** = ``5``
  72. Produce a dodge effect with the following formula:
  73. ::
  74. result = a / (vec3(1.0) - b);
  75. .. _class_VisualShaderNodeColorOp_constant_OP_BURN:
  76. .. rst-class:: classref-enumeration-constant
  77. :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>` **OP_BURN** = ``6``
  78. Produce a burn effect with the following formula:
  79. ::
  80. result = vec3(1.0) - (vec3(1.0) - a) / b;
  81. .. _class_VisualShaderNodeColorOp_constant_OP_SOFT_LIGHT:
  82. .. rst-class:: classref-enumeration-constant
  83. :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>` **OP_SOFT_LIGHT** = ``7``
  84. Produce a soft light effect with the following formula:
  85. ::
  86. for (int i = 0; i < 3; i++) {
  87. float base = a[i];
  88. float blend = b[i];
  89. if (base < 0.5) {
  90. result[i] = base * (blend + 0.5);
  91. } else {
  92. result[i] = 1.0 - (1.0 - base) * (1.0 - (blend - 0.5));
  93. }
  94. }
  95. .. _class_VisualShaderNodeColorOp_constant_OP_HARD_LIGHT:
  96. .. rst-class:: classref-enumeration-constant
  97. :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>` **OP_HARD_LIGHT** = ``8``
  98. Produce a hard light effect with the following formula:
  99. ::
  100. for (int i = 0; i < 3; i++) {
  101. float base = a[i];
  102. float blend = b[i];
  103. if (base < 0.5) {
  104. result[i] = base * (2.0 * blend);
  105. } else {
  106. result[i] = 1.0 - (1.0 - base) * (1.0 - 2.0 * (blend - 0.5));
  107. }
  108. }
  109. .. _class_VisualShaderNodeColorOp_constant_OP_MAX:
  110. .. rst-class:: classref-enumeration-constant
  111. :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>` **OP_MAX** = ``9``
  112. Represents the size of the :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>` enum.
  113. .. rst-class:: classref-section-separator
  114. ----
  115. .. rst-class:: classref-descriptions-group
  116. Property Descriptions
  117. ---------------------
  118. .. _class_VisualShaderNodeColorOp_property_operator:
  119. .. rst-class:: classref-property
  120. :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>` **operator** = ``0`` :ref:`🔗<class_VisualShaderNodeColorOp_property_operator>`
  121. .. rst-class:: classref-property-setget
  122. - |void| **set_operator**\ (\ value\: :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>`\ )
  123. - :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>` **get_operator**\ (\ )
  124. An operator to be applied to the inputs. See :ref:`Operator<enum_VisualShaderNodeColorOp_Operator>` for options.
  125. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  126. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  127. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  128. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  129. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  130. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  131. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
  132. .. |void| replace:: :abbr:`void (No return value.)`