class_reflectionprobe.rst 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406
  1. :github_url: hide
  2. .. meta::
  3. :keywords: environment, envmap
  4. .. DO NOT EDIT THIS FILE!!!
  5. .. Generated automatically from Godot engine sources.
  6. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
  7. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/ReflectionProbe.xml.
  8. .. _class_ReflectionProbe:
  9. ReflectionProbe
  10. ===============
  11. **Inherits:** :ref:`VisualInstance3D<class_VisualInstance3D>` **<** :ref:`Node3D<class_Node3D>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  12. Captures its surroundings to create fast, accurate reflections from a given point.
  13. .. rst-class:: classref-introduction-group
  14. Description
  15. -----------
  16. Captures its surroundings as a cubemap, and stores versions of it with increasing levels of blur to simulate different material roughnesses.
  17. The **ReflectionProbe** is used to create high-quality reflections at a low performance cost (when :ref:`update_mode<class_ReflectionProbe_property_update_mode>` is :ref:`UPDATE_ONCE<class_ReflectionProbe_constant_UPDATE_ONCE>`). **ReflectionProbe**\ s can be blended together and with the rest of the scene smoothly. **ReflectionProbe**\ s can also be combined with :ref:`VoxelGI<class_VoxelGI>`, SDFGI (:ref:`Environment.sdfgi_enabled<class_Environment_property_sdfgi_enabled>`) and screen-space reflections (:ref:`Environment.ssr_enabled<class_Environment_property_ssr_enabled>`) to get more accurate reflections in specific areas. **ReflectionProbe**\ s render all objects within their :ref:`cull_mask<class_ReflectionProbe_property_cull_mask>`, so updating them can be quite expensive. It is best to update them once with the important static objects and then leave them as-is.
  18. \ **Note:** Unlike :ref:`VoxelGI<class_VoxelGI>` and SDFGI, **ReflectionProbe**\ s only source their environment from a :ref:`WorldEnvironment<class_WorldEnvironment>` node. If you specify an :ref:`Environment<class_Environment>` resource within a :ref:`Camera3D<class_Camera3D>` node, it will be ignored by the **ReflectionProbe**. This can lead to incorrect lighting within the **ReflectionProbe**.
  19. \ **Note:** Reflection probes are only supported in the Forward+ and Mobile rendering methods, not Compatibility. When using the Mobile rendering method, only 8 reflection probes can be displayed on each mesh resource. Attempting to display more than 8 reflection probes on a single mesh resource will result in reflection probes flickering in and out as the camera moves.
  20. \ **Note:** When using the Mobile rendering method, reflection probes will only correctly affect meshes whose visibility AABB intersects with the reflection probe's AABB. If using a shader to deform the mesh in a way that makes it go outside its AABB, :ref:`GeometryInstance3D.extra_cull_margin<class_GeometryInstance3D_property_extra_cull_margin>` must be increased on the mesh. Otherwise, the reflection probe may not be visible on the mesh.
  21. .. rst-class:: classref-introduction-group
  22. Tutorials
  23. ---------
  24. - :doc:`Reflection probes <../tutorials/3d/global_illumination/reflection_probes>`
  25. .. rst-class:: classref-reftable-group
  26. Properties
  27. ----------
  28. .. table::
  29. :widths: auto
  30. +------------------------------------------------------+----------------------------------------------------------------------------------+-------------------------+
  31. | :ref:`Color<class_Color>` | :ref:`ambient_color<class_ReflectionProbe_property_ambient_color>` | ``Color(0, 0, 0, 1)`` |
  32. +------------------------------------------------------+----------------------------------------------------------------------------------+-------------------------+
  33. | :ref:`float<class_float>` | :ref:`ambient_color_energy<class_ReflectionProbe_property_ambient_color_energy>` | ``1.0`` |
  34. +------------------------------------------------------+----------------------------------------------------------------------------------+-------------------------+
  35. | :ref:`AmbientMode<enum_ReflectionProbe_AmbientMode>` | :ref:`ambient_mode<class_ReflectionProbe_property_ambient_mode>` | ``1`` |
  36. +------------------------------------------------------+----------------------------------------------------------------------------------+-------------------------+
  37. | :ref:`bool<class_bool>` | :ref:`box_projection<class_ReflectionProbe_property_box_projection>` | ``false`` |
  38. +------------------------------------------------------+----------------------------------------------------------------------------------+-------------------------+
  39. | :ref:`int<class_int>` | :ref:`cull_mask<class_ReflectionProbe_property_cull_mask>` | ``1048575`` |
  40. +------------------------------------------------------+----------------------------------------------------------------------------------+-------------------------+
  41. | :ref:`bool<class_bool>` | :ref:`enable_shadows<class_ReflectionProbe_property_enable_shadows>` | ``false`` |
  42. +------------------------------------------------------+----------------------------------------------------------------------------------+-------------------------+
  43. | :ref:`float<class_float>` | :ref:`intensity<class_ReflectionProbe_property_intensity>` | ``1.0`` |
  44. +------------------------------------------------------+----------------------------------------------------------------------------------+-------------------------+
  45. | :ref:`bool<class_bool>` | :ref:`interior<class_ReflectionProbe_property_interior>` | ``false`` |
  46. +------------------------------------------------------+----------------------------------------------------------------------------------+-------------------------+
  47. | :ref:`float<class_float>` | :ref:`max_distance<class_ReflectionProbe_property_max_distance>` | ``0.0`` |
  48. +------------------------------------------------------+----------------------------------------------------------------------------------+-------------------------+
  49. | :ref:`float<class_float>` | :ref:`mesh_lod_threshold<class_ReflectionProbe_property_mesh_lod_threshold>` | ``1.0`` |
  50. +------------------------------------------------------+----------------------------------------------------------------------------------+-------------------------+
  51. | :ref:`Vector3<class_Vector3>` | :ref:`origin_offset<class_ReflectionProbe_property_origin_offset>` | ``Vector3(0, 0, 0)`` |
  52. +------------------------------------------------------+----------------------------------------------------------------------------------+-------------------------+
  53. | :ref:`int<class_int>` | :ref:`reflection_mask<class_ReflectionProbe_property_reflection_mask>` | ``1048575`` |
  54. +------------------------------------------------------+----------------------------------------------------------------------------------+-------------------------+
  55. | :ref:`Vector3<class_Vector3>` | :ref:`size<class_ReflectionProbe_property_size>` | ``Vector3(20, 20, 20)`` |
  56. +------------------------------------------------------+----------------------------------------------------------------------------------+-------------------------+
  57. | :ref:`UpdateMode<enum_ReflectionProbe_UpdateMode>` | :ref:`update_mode<class_ReflectionProbe_property_update_mode>` | ``0`` |
  58. +------------------------------------------------------+----------------------------------------------------------------------------------+-------------------------+
  59. .. rst-class:: classref-section-separator
  60. ----
  61. .. rst-class:: classref-descriptions-group
  62. Enumerations
  63. ------------
  64. .. _enum_ReflectionProbe_UpdateMode:
  65. .. rst-class:: classref-enumeration
  66. enum **UpdateMode**: :ref:`🔗<enum_ReflectionProbe_UpdateMode>`
  67. .. _class_ReflectionProbe_constant_UPDATE_ONCE:
  68. .. rst-class:: classref-enumeration-constant
  69. :ref:`UpdateMode<enum_ReflectionProbe_UpdateMode>` **UPDATE_ONCE** = ``0``
  70. Update the probe once on the next frame (recommended for most objects). The corresponding radiance map will be generated over the following six frames. This takes more time to update than :ref:`UPDATE_ALWAYS<class_ReflectionProbe_constant_UPDATE_ALWAYS>`, but it has a lower performance cost and can result in higher-quality reflections. The ReflectionProbe is updated when its transform changes, but not when nearby geometry changes. You can force a **ReflectionProbe** update by moving the **ReflectionProbe** slightly in any direction.
  71. .. _class_ReflectionProbe_constant_UPDATE_ALWAYS:
  72. .. rst-class:: classref-enumeration-constant
  73. :ref:`UpdateMode<enum_ReflectionProbe_UpdateMode>` **UPDATE_ALWAYS** = ``1``
  74. Update the probe every frame. This provides better results for fast-moving dynamic objects (such as cars). However, it has a significant performance cost. Due to the cost, it's recommended to only use one ReflectionProbe with :ref:`UPDATE_ALWAYS<class_ReflectionProbe_constant_UPDATE_ALWAYS>` at most per scene. For all other use cases, use :ref:`UPDATE_ONCE<class_ReflectionProbe_constant_UPDATE_ONCE>`.
  75. .. rst-class:: classref-item-separator
  76. ----
  77. .. _enum_ReflectionProbe_AmbientMode:
  78. .. rst-class:: classref-enumeration
  79. enum **AmbientMode**: :ref:`🔗<enum_ReflectionProbe_AmbientMode>`
  80. .. _class_ReflectionProbe_constant_AMBIENT_DISABLED:
  81. .. rst-class:: classref-enumeration-constant
  82. :ref:`AmbientMode<enum_ReflectionProbe_AmbientMode>` **AMBIENT_DISABLED** = ``0``
  83. Do not apply any ambient lighting inside the **ReflectionProbe**'s box defined by its :ref:`size<class_ReflectionProbe_property_size>`.
  84. .. _class_ReflectionProbe_constant_AMBIENT_ENVIRONMENT:
  85. .. rst-class:: classref-enumeration-constant
  86. :ref:`AmbientMode<enum_ReflectionProbe_AmbientMode>` **AMBIENT_ENVIRONMENT** = ``1``
  87. Apply automatically-sourced environment lighting inside the **ReflectionProbe**'s box defined by its :ref:`size<class_ReflectionProbe_property_size>`.
  88. .. _class_ReflectionProbe_constant_AMBIENT_COLOR:
  89. .. rst-class:: classref-enumeration-constant
  90. :ref:`AmbientMode<enum_ReflectionProbe_AmbientMode>` **AMBIENT_COLOR** = ``2``
  91. Apply custom ambient lighting inside the **ReflectionProbe**'s box defined by its :ref:`size<class_ReflectionProbe_property_size>`. See :ref:`ambient_color<class_ReflectionProbe_property_ambient_color>` and :ref:`ambient_color_energy<class_ReflectionProbe_property_ambient_color_energy>`.
  92. .. rst-class:: classref-section-separator
  93. ----
  94. .. rst-class:: classref-descriptions-group
  95. Property Descriptions
  96. ---------------------
  97. .. _class_ReflectionProbe_property_ambient_color:
  98. .. rst-class:: classref-property
  99. :ref:`Color<class_Color>` **ambient_color** = ``Color(0, 0, 0, 1)`` :ref:`🔗<class_ReflectionProbe_property_ambient_color>`
  100. .. rst-class:: classref-property-setget
  101. - |void| **set_ambient_color**\ (\ value\: :ref:`Color<class_Color>`\ )
  102. - :ref:`Color<class_Color>` **get_ambient_color**\ (\ )
  103. The custom ambient color to use within the **ReflectionProbe**'s box defined by its :ref:`size<class_ReflectionProbe_property_size>`. Only effective if :ref:`ambient_mode<class_ReflectionProbe_property_ambient_mode>` is :ref:`AMBIENT_COLOR<class_ReflectionProbe_constant_AMBIENT_COLOR>`.
  104. .. rst-class:: classref-item-separator
  105. ----
  106. .. _class_ReflectionProbe_property_ambient_color_energy:
  107. .. rst-class:: classref-property
  108. :ref:`float<class_float>` **ambient_color_energy** = ``1.0`` :ref:`🔗<class_ReflectionProbe_property_ambient_color_energy>`
  109. .. rst-class:: classref-property-setget
  110. - |void| **set_ambient_color_energy**\ (\ value\: :ref:`float<class_float>`\ )
  111. - :ref:`float<class_float>` **get_ambient_color_energy**\ (\ )
  112. The custom ambient color energy to use within the **ReflectionProbe**'s box defined by its :ref:`size<class_ReflectionProbe_property_size>`. Only effective if :ref:`ambient_mode<class_ReflectionProbe_property_ambient_mode>` is :ref:`AMBIENT_COLOR<class_ReflectionProbe_constant_AMBIENT_COLOR>`.
  113. .. rst-class:: classref-item-separator
  114. ----
  115. .. _class_ReflectionProbe_property_ambient_mode:
  116. .. rst-class:: classref-property
  117. :ref:`AmbientMode<enum_ReflectionProbe_AmbientMode>` **ambient_mode** = ``1`` :ref:`🔗<class_ReflectionProbe_property_ambient_mode>`
  118. .. rst-class:: classref-property-setget
  119. - |void| **set_ambient_mode**\ (\ value\: :ref:`AmbientMode<enum_ReflectionProbe_AmbientMode>`\ )
  120. - :ref:`AmbientMode<enum_ReflectionProbe_AmbientMode>` **get_ambient_mode**\ (\ )
  121. The ambient color to use within the **ReflectionProbe**'s box defined by its :ref:`size<class_ReflectionProbe_property_size>`. The ambient color will smoothly blend with other **ReflectionProbe**\ s and the rest of the scene (outside the **ReflectionProbe**'s box defined by its :ref:`size<class_ReflectionProbe_property_size>`).
  122. .. rst-class:: classref-item-separator
  123. ----
  124. .. _class_ReflectionProbe_property_box_projection:
  125. .. rst-class:: classref-property
  126. :ref:`bool<class_bool>` **box_projection** = ``false`` :ref:`🔗<class_ReflectionProbe_property_box_projection>`
  127. .. rst-class:: classref-property-setget
  128. - |void| **set_enable_box_projection**\ (\ value\: :ref:`bool<class_bool>`\ )
  129. - :ref:`bool<class_bool>` **is_box_projection_enabled**\ (\ )
  130. If ``true``, enables box projection. This makes reflections look more correct in rectangle-shaped rooms by offsetting the reflection center depending on the camera's location.
  131. \ **Note:** To better fit rectangle-shaped rooms that are not aligned to the grid, you can rotate the **ReflectionProbe** node.
  132. .. rst-class:: classref-item-separator
  133. ----
  134. .. _class_ReflectionProbe_property_cull_mask:
  135. .. rst-class:: classref-property
  136. :ref:`int<class_int>` **cull_mask** = ``1048575`` :ref:`🔗<class_ReflectionProbe_property_cull_mask>`
  137. .. rst-class:: classref-property-setget
  138. - |void| **set_cull_mask**\ (\ value\: :ref:`int<class_int>`\ )
  139. - :ref:`int<class_int>` **get_cull_mask**\ (\ )
  140. Sets the cull mask which determines what objects are drawn by this probe. Every :ref:`VisualInstance3D<class_VisualInstance3D>` with a layer included in this cull mask will be rendered by the probe. It is best to only include large objects which are likely to take up a lot of space in the reflection in order to save on rendering cost.
  141. This can also be used to prevent an object from reflecting upon itself (for instance, a **ReflectionProbe** centered on a vehicle).
  142. .. rst-class:: classref-item-separator
  143. ----
  144. .. _class_ReflectionProbe_property_enable_shadows:
  145. .. rst-class:: classref-property
  146. :ref:`bool<class_bool>` **enable_shadows** = ``false`` :ref:`🔗<class_ReflectionProbe_property_enable_shadows>`
  147. .. rst-class:: classref-property-setget
  148. - |void| **set_enable_shadows**\ (\ value\: :ref:`bool<class_bool>`\ )
  149. - :ref:`bool<class_bool>` **are_shadows_enabled**\ (\ )
  150. If ``true``, computes shadows in the reflection probe. This makes the reflection probe slower to render; you may want to disable this if using the :ref:`UPDATE_ALWAYS<class_ReflectionProbe_constant_UPDATE_ALWAYS>` :ref:`update_mode<class_ReflectionProbe_property_update_mode>`.
  151. .. rst-class:: classref-item-separator
  152. ----
  153. .. _class_ReflectionProbe_property_intensity:
  154. .. rst-class:: classref-property
  155. :ref:`float<class_float>` **intensity** = ``1.0`` :ref:`🔗<class_ReflectionProbe_property_intensity>`
  156. .. rst-class:: classref-property-setget
  157. - |void| **set_intensity**\ (\ value\: :ref:`float<class_float>`\ )
  158. - :ref:`float<class_float>` **get_intensity**\ (\ )
  159. Defines the reflection intensity. Intensity modulates the strength of the reflection.
  160. .. rst-class:: classref-item-separator
  161. ----
  162. .. _class_ReflectionProbe_property_interior:
  163. .. rst-class:: classref-property
  164. :ref:`bool<class_bool>` **interior** = ``false`` :ref:`🔗<class_ReflectionProbe_property_interior>`
  165. .. rst-class:: classref-property-setget
  166. - |void| **set_as_interior**\ (\ value\: :ref:`bool<class_bool>`\ )
  167. - :ref:`bool<class_bool>` **is_set_as_interior**\ (\ )
  168. If ``true``, reflections will ignore sky contribution.
  169. .. rst-class:: classref-item-separator
  170. ----
  171. .. _class_ReflectionProbe_property_max_distance:
  172. .. rst-class:: classref-property
  173. :ref:`float<class_float>` **max_distance** = ``0.0`` :ref:`🔗<class_ReflectionProbe_property_max_distance>`
  174. .. rst-class:: classref-property-setget
  175. - |void| **set_max_distance**\ (\ value\: :ref:`float<class_float>`\ )
  176. - :ref:`float<class_float>` **get_max_distance**\ (\ )
  177. The maximum distance away from the **ReflectionProbe** an object can be before it is culled. Decrease this to improve performance, especially when using the :ref:`UPDATE_ALWAYS<class_ReflectionProbe_constant_UPDATE_ALWAYS>` :ref:`update_mode<class_ReflectionProbe_property_update_mode>`.
  178. \ **Note:** The maximum reflection distance is always at least equal to the probe's extents. This means that decreasing :ref:`max_distance<class_ReflectionProbe_property_max_distance>` will not always cull objects from reflections, especially if the reflection probe's box defined by its :ref:`size<class_ReflectionProbe_property_size>` is already large.
  179. .. rst-class:: classref-item-separator
  180. ----
  181. .. _class_ReflectionProbe_property_mesh_lod_threshold:
  182. .. rst-class:: classref-property
  183. :ref:`float<class_float>` **mesh_lod_threshold** = ``1.0`` :ref:`🔗<class_ReflectionProbe_property_mesh_lod_threshold>`
  184. .. rst-class:: classref-property-setget
  185. - |void| **set_mesh_lod_threshold**\ (\ value\: :ref:`float<class_float>`\ )
  186. - :ref:`float<class_float>` **get_mesh_lod_threshold**\ (\ )
  187. The automatic LOD bias to use for meshes rendered within the **ReflectionProbe** (this is analog to :ref:`Viewport.mesh_lod_threshold<class_Viewport_property_mesh_lod_threshold>`). Higher values will use less detailed versions of meshes that have LOD variations generated. If set to ``0.0``, automatic LOD is disabled. Increase :ref:`mesh_lod_threshold<class_ReflectionProbe_property_mesh_lod_threshold>` to improve performance at the cost of geometry detail, especially when using the :ref:`UPDATE_ALWAYS<class_ReflectionProbe_constant_UPDATE_ALWAYS>` :ref:`update_mode<class_ReflectionProbe_property_update_mode>`.
  188. \ **Note:** :ref:`mesh_lod_threshold<class_ReflectionProbe_property_mesh_lod_threshold>` does not affect :ref:`GeometryInstance3D<class_GeometryInstance3D>` visibility ranges (also known as "manual" LOD or hierarchical LOD).
  189. .. rst-class:: classref-item-separator
  190. ----
  191. .. _class_ReflectionProbe_property_origin_offset:
  192. .. rst-class:: classref-property
  193. :ref:`Vector3<class_Vector3>` **origin_offset** = ``Vector3(0, 0, 0)`` :ref:`🔗<class_ReflectionProbe_property_origin_offset>`
  194. .. rst-class:: classref-property-setget
  195. - |void| **set_origin_offset**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
  196. - :ref:`Vector3<class_Vector3>` **get_origin_offset**\ (\ )
  197. Sets the origin offset to be used when this **ReflectionProbe** is in :ref:`box_projection<class_ReflectionProbe_property_box_projection>` mode. This can be set to a non-zero value to ensure a reflection fits a rectangle-shaped room, while reducing the number of objects that "get in the way" of the reflection.
  198. .. rst-class:: classref-item-separator
  199. ----
  200. .. _class_ReflectionProbe_property_reflection_mask:
  201. .. rst-class:: classref-property
  202. :ref:`int<class_int>` **reflection_mask** = ``1048575`` :ref:`🔗<class_ReflectionProbe_property_reflection_mask>`
  203. .. rst-class:: classref-property-setget
  204. - |void| **set_reflection_mask**\ (\ value\: :ref:`int<class_int>`\ )
  205. - :ref:`int<class_int>` **get_reflection_mask**\ (\ )
  206. Sets the reflection mask which determines what objects have reflections applied from this probe. Every :ref:`VisualInstance3D<class_VisualInstance3D>` with a layer included in this reflection mask will have reflections applied from this probe. See also :ref:`cull_mask<class_ReflectionProbe_property_cull_mask>`, which can be used to exclude objects from appearing in the reflection while still making them affected by the **ReflectionProbe**.
  207. .. rst-class:: classref-item-separator
  208. ----
  209. .. _class_ReflectionProbe_property_size:
  210. .. rst-class:: classref-property
  211. :ref:`Vector3<class_Vector3>` **size** = ``Vector3(20, 20, 20)`` :ref:`🔗<class_ReflectionProbe_property_size>`
  212. .. rst-class:: classref-property-setget
  213. - |void| **set_size**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
  214. - :ref:`Vector3<class_Vector3>` **get_size**\ (\ )
  215. The size of the reflection probe. The larger the size, the more space covered by the probe, which will lower the perceived resolution. It is best to keep the size only as large as you need it.
  216. \ **Note:** To better fit areas that are not aligned to the grid, you can rotate the **ReflectionProbe** node.
  217. .. rst-class:: classref-item-separator
  218. ----
  219. .. _class_ReflectionProbe_property_update_mode:
  220. .. rst-class:: classref-property
  221. :ref:`UpdateMode<enum_ReflectionProbe_UpdateMode>` **update_mode** = ``0`` :ref:`🔗<class_ReflectionProbe_property_update_mode>`
  222. .. rst-class:: classref-property-setget
  223. - |void| **set_update_mode**\ (\ value\: :ref:`UpdateMode<enum_ReflectionProbe_UpdateMode>`\ )
  224. - :ref:`UpdateMode<enum_ReflectionProbe_UpdateMode>` **get_update_mode**\ (\ )
  225. Sets how frequently the **ReflectionProbe** is updated. Can be :ref:`UPDATE_ONCE<class_ReflectionProbe_constant_UPDATE_ONCE>` or :ref:`UPDATE_ALWAYS<class_ReflectionProbe_constant_UPDATE_ALWAYS>`.
  226. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  227. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  228. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  229. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  230. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  231. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  232. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
  233. .. |void| replace:: :abbr:`void (No return value.)`