class_multimesh.rst 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514
  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/3.6/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/MultiMesh.xml.
  6. .. _class_MultiMesh:
  7. MultiMesh
  8. =========
  9. **Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
  10. Provides high-performance mesh instancing.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. MultiMesh provides low-level mesh instancing. Drawing thousands of :ref:`MeshInstance<class_MeshInstance>` nodes can be slow, since each object is submitted to the GPU then drawn individually.
  15. MultiMesh is much faster as it can draw thousands of instances with a single draw call, resulting in less API overhead.
  16. As a drawback, if the instances are too far away from each other, performance may be reduced as every single instance will always render (they are spatially indexed as one, for the whole object).
  17. Since instances may have any behavior, the AABB used for visibility must be provided by the user.
  18. .. rst-class:: classref-introduction-group
  19. Tutorials
  20. ---------
  21. - :doc:`../tutorials/performance/vertex_animation/animating_thousands_of_fish`
  22. - :doc:`../tutorials/performance/using_multimesh`
  23. .. rst-class:: classref-reftable-group
  24. Properties
  25. ----------
  26. .. table::
  27. :widths: auto
  28. +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------+
  29. | :ref:`ColorFormat<enum_MultiMesh_ColorFormat>` | :ref:`color_format<class_MultiMesh_property_color_format>` | ``0`` |
  30. +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------+
  31. | :ref:`CustomDataFormat<enum_MultiMesh_CustomDataFormat>` | :ref:`custom_data_format<class_MultiMesh_property_custom_data_format>` | ``0`` |
  32. +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------+
  33. | :ref:`int<class_int>` | :ref:`instance_count<class_MultiMesh_property_instance_count>` | ``0`` |
  34. +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------+
  35. | :ref:`Mesh<class_Mesh>` | :ref:`mesh<class_MultiMesh_property_mesh>` | |
  36. +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------+
  37. | :ref:`PhysicsInterpolationQuality<enum_MultiMesh_PhysicsInterpolationQuality>` | :ref:`physics_interpolation_quality<class_MultiMesh_property_physics_interpolation_quality>` | ``0`` |
  38. +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------+
  39. | :ref:`TransformFormat<enum_MultiMesh_TransformFormat>` | :ref:`transform_format<class_MultiMesh_property_transform_format>` | ``0`` |
  40. +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------+
  41. | :ref:`int<class_int>` | :ref:`visible_instance_count<class_MultiMesh_property_visible_instance_count>` | ``-1`` |
  42. +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------+
  43. .. rst-class:: classref-reftable-group
  44. Methods
  45. -------
  46. .. table::
  47. :widths: auto
  48. +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  49. | :ref:`AABB<class_AABB>` | :ref:`get_aabb<class_MultiMesh_method_get_aabb>` **(** **)** |const| |
  50. +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  51. | :ref:`Color<class_Color>` | :ref:`get_instance_color<class_MultiMesh_method_get_instance_color>` **(** :ref:`int<class_int>` instance **)** |const| |
  52. +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  53. | :ref:`Color<class_Color>` | :ref:`get_instance_custom_data<class_MultiMesh_method_get_instance_custom_data>` **(** :ref:`int<class_int>` instance **)** |const| |
  54. +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  55. | :ref:`Transform<class_Transform>` | :ref:`get_instance_transform<class_MultiMesh_method_get_instance_transform>` **(** :ref:`int<class_int>` instance **)** |const| |
  56. +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  57. | :ref:`Transform2D<class_Transform2D>` | :ref:`get_instance_transform_2d<class_MultiMesh_method_get_instance_transform_2d>` **(** :ref:`int<class_int>` instance **)** |const| |
  58. +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  59. | void | :ref:`reset_instance_physics_interpolation<class_MultiMesh_method_reset_instance_physics_interpolation>` **(** :ref:`int<class_int>` instance **)** |
  60. +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  61. | void | :ref:`set_as_bulk_array<class_MultiMesh_method_set_as_bulk_array>` **(** :ref:`PoolRealArray<class_PoolRealArray>` array **)** |
  62. +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  63. | void | :ref:`set_as_bulk_array_interpolated<class_MultiMesh_method_set_as_bulk_array_interpolated>` **(** :ref:`PoolRealArray<class_PoolRealArray>` array_current, :ref:`PoolRealArray<class_PoolRealArray>` array_previous **)** |
  64. +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  65. | void | :ref:`set_instance_color<class_MultiMesh_method_set_instance_color>` **(** :ref:`int<class_int>` instance, :ref:`Color<class_Color>` color **)** |
  66. +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  67. | void | :ref:`set_instance_custom_data<class_MultiMesh_method_set_instance_custom_data>` **(** :ref:`int<class_int>` instance, :ref:`Color<class_Color>` custom_data **)** |
  68. +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  69. | void | :ref:`set_instance_transform<class_MultiMesh_method_set_instance_transform>` **(** :ref:`int<class_int>` instance, :ref:`Transform<class_Transform>` transform **)** |
  70. +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  71. | void | :ref:`set_instance_transform_2d<class_MultiMesh_method_set_instance_transform_2d>` **(** :ref:`int<class_int>` instance, :ref:`Transform2D<class_Transform2D>` transform **)** |
  72. +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  73. .. rst-class:: classref-section-separator
  74. ----
  75. .. rst-class:: classref-descriptions-group
  76. Enumerations
  77. ------------
  78. .. _enum_MultiMesh_TransformFormat:
  79. .. rst-class:: classref-enumeration
  80. enum **TransformFormat**:
  81. .. _class_MultiMesh_constant_TRANSFORM_2D:
  82. .. rst-class:: classref-enumeration-constant
  83. :ref:`TransformFormat<enum_MultiMesh_TransformFormat>` **TRANSFORM_2D** = ``0``
  84. Use this when using 2D transforms.
  85. .. _class_MultiMesh_constant_TRANSFORM_3D:
  86. .. rst-class:: classref-enumeration-constant
  87. :ref:`TransformFormat<enum_MultiMesh_TransformFormat>` **TRANSFORM_3D** = ``1``
  88. Use this when using 3D transforms.
  89. .. rst-class:: classref-item-separator
  90. ----
  91. .. _enum_MultiMesh_ColorFormat:
  92. .. rst-class:: classref-enumeration
  93. enum **ColorFormat**:
  94. .. _class_MultiMesh_constant_COLOR_NONE:
  95. .. rst-class:: classref-enumeration-constant
  96. :ref:`ColorFormat<enum_MultiMesh_ColorFormat>` **COLOR_NONE** = ``0``
  97. Use when you are not using per-instance :ref:`Color<class_Color>`\ s.
  98. .. _class_MultiMesh_constant_COLOR_8BIT:
  99. .. rst-class:: classref-enumeration-constant
  100. :ref:`ColorFormat<enum_MultiMesh_ColorFormat>` **COLOR_8BIT** = ``1``
  101. Compress :ref:`Color<class_Color>` data into 8 bits when passing to shader. This uses less memory and can be faster, but the :ref:`Color<class_Color>` loses precision.
  102. .. _class_MultiMesh_constant_COLOR_FLOAT:
  103. .. rst-class:: classref-enumeration-constant
  104. :ref:`ColorFormat<enum_MultiMesh_ColorFormat>` **COLOR_FLOAT** = ``2``
  105. The :ref:`Color<class_Color>` passed into :ref:`set_instance_color<class_MultiMesh_method_set_instance_color>` will use 4 floats. Use this for highest precision :ref:`Color<class_Color>`.
  106. .. rst-class:: classref-item-separator
  107. ----
  108. .. _enum_MultiMesh_CustomDataFormat:
  109. .. rst-class:: classref-enumeration
  110. enum **CustomDataFormat**:
  111. .. _class_MultiMesh_constant_CUSTOM_DATA_NONE:
  112. .. rst-class:: classref-enumeration-constant
  113. :ref:`CustomDataFormat<enum_MultiMesh_CustomDataFormat>` **CUSTOM_DATA_NONE** = ``0``
  114. Use when you are not using per-instance custom data.
  115. .. _class_MultiMesh_constant_CUSTOM_DATA_8BIT:
  116. .. rst-class:: classref-enumeration-constant
  117. :ref:`CustomDataFormat<enum_MultiMesh_CustomDataFormat>` **CUSTOM_DATA_8BIT** = ``1``
  118. Compress custom_data into 8 bits when passing to shader. This uses less memory and can be faster, but loses precision and range. Floats packed into 8 bits can only represent values between 0 and 1, numbers outside that range will be clamped.
  119. .. _class_MultiMesh_constant_CUSTOM_DATA_FLOAT:
  120. .. rst-class:: classref-enumeration-constant
  121. :ref:`CustomDataFormat<enum_MultiMesh_CustomDataFormat>` **CUSTOM_DATA_FLOAT** = ``2``
  122. The :ref:`Color<class_Color>` passed into :ref:`set_instance_custom_data<class_MultiMesh_method_set_instance_custom_data>` will use 4 floats. Use this for highest precision.
  123. .. rst-class:: classref-item-separator
  124. ----
  125. .. _enum_MultiMesh_PhysicsInterpolationQuality:
  126. .. rst-class:: classref-enumeration
  127. enum **PhysicsInterpolationQuality**:
  128. .. _class_MultiMesh_constant_INTERP_QUALITY_FAST:
  129. .. rst-class:: classref-enumeration-constant
  130. :ref:`PhysicsInterpolationQuality<enum_MultiMesh_PhysicsInterpolationQuality>` **INTERP_QUALITY_FAST** = ``0``
  131. Always interpolate using Basis lerping, which can produce warping artifacts in some situations.
  132. .. _class_MultiMesh_constant_INTERP_QUALITY_HIGH:
  133. .. rst-class:: classref-enumeration-constant
  134. :ref:`PhysicsInterpolationQuality<enum_MultiMesh_PhysicsInterpolationQuality>` **INTERP_QUALITY_HIGH** = ``1``
  135. Attempt to interpolate using Basis slerping (spherical linear interpolation) where possible, otherwise fall back to lerping.
  136. .. rst-class:: classref-section-separator
  137. ----
  138. .. rst-class:: classref-descriptions-group
  139. Property Descriptions
  140. ---------------------
  141. .. _class_MultiMesh_property_color_format:
  142. .. rst-class:: classref-property
  143. :ref:`ColorFormat<enum_MultiMesh_ColorFormat>` **color_format** = ``0``
  144. .. rst-class:: classref-property-setget
  145. - void **set_color_format** **(** :ref:`ColorFormat<enum_MultiMesh_ColorFormat>` value **)**
  146. - :ref:`ColorFormat<enum_MultiMesh_ColorFormat>` **get_color_format** **(** **)**
  147. Format of colors in color array that gets passed to shader.
  148. .. rst-class:: classref-item-separator
  149. ----
  150. .. _class_MultiMesh_property_custom_data_format:
  151. .. rst-class:: classref-property
  152. :ref:`CustomDataFormat<enum_MultiMesh_CustomDataFormat>` **custom_data_format** = ``0``
  153. .. rst-class:: classref-property-setget
  154. - void **set_custom_data_format** **(** :ref:`CustomDataFormat<enum_MultiMesh_CustomDataFormat>` value **)**
  155. - :ref:`CustomDataFormat<enum_MultiMesh_CustomDataFormat>` **get_custom_data_format** **(** **)**
  156. Format of custom data in custom data array that gets passed to shader.
  157. .. rst-class:: classref-item-separator
  158. ----
  159. .. _class_MultiMesh_property_instance_count:
  160. .. rst-class:: classref-property
  161. :ref:`int<class_int>` **instance_count** = ``0``
  162. .. rst-class:: classref-property-setget
  163. - void **set_instance_count** **(** :ref:`int<class_int>` value **)**
  164. - :ref:`int<class_int>` **get_instance_count** **(** **)**
  165. Number of instances that will get drawn. This clears and (re)sizes the buffers. By default, all instances are drawn but you can limit this with :ref:`visible_instance_count<class_MultiMesh_property_visible_instance_count>`.
  166. .. rst-class:: classref-item-separator
  167. ----
  168. .. _class_MultiMesh_property_mesh:
  169. .. rst-class:: classref-property
  170. :ref:`Mesh<class_Mesh>` **mesh**
  171. .. rst-class:: classref-property-setget
  172. - void **set_mesh** **(** :ref:`Mesh<class_Mesh>` value **)**
  173. - :ref:`Mesh<class_Mesh>` **get_mesh** **(** **)**
  174. Mesh to be drawn.
  175. .. rst-class:: classref-item-separator
  176. ----
  177. .. _class_MultiMesh_property_physics_interpolation_quality:
  178. .. rst-class:: classref-property
  179. :ref:`PhysicsInterpolationQuality<enum_MultiMesh_PhysicsInterpolationQuality>` **physics_interpolation_quality** = ``0``
  180. .. rst-class:: classref-property-setget
  181. - void **set_physics_interpolation_quality** **(** :ref:`PhysicsInterpolationQuality<enum_MultiMesh_PhysicsInterpolationQuality>` value **)**
  182. - :ref:`PhysicsInterpolationQuality<enum_MultiMesh_PhysicsInterpolationQuality>` **get_physics_interpolation_quality** **(** **)**
  183. Choose whether to use an interpolation method that favors speed or quality.
  184. When using low physics tick rates (typically below 20) or high rates of object rotation, you may get better results from the high quality setting.
  185. \ **Note:** Fast quality does not equate to low quality. Except in the special cases mentioned above, the quality should be comparable to high quality.
  186. .. rst-class:: classref-item-separator
  187. ----
  188. .. _class_MultiMesh_property_transform_format:
  189. .. rst-class:: classref-property
  190. :ref:`TransformFormat<enum_MultiMesh_TransformFormat>` **transform_format** = ``0``
  191. .. rst-class:: classref-property-setget
  192. - void **set_transform_format** **(** :ref:`TransformFormat<enum_MultiMesh_TransformFormat>` value **)**
  193. - :ref:`TransformFormat<enum_MultiMesh_TransformFormat>` **get_transform_format** **(** **)**
  194. Format of transform used to transform mesh, either 2D or 3D.
  195. .. rst-class:: classref-item-separator
  196. ----
  197. .. _class_MultiMesh_property_visible_instance_count:
  198. .. rst-class:: classref-property
  199. :ref:`int<class_int>` **visible_instance_count** = ``-1``
  200. .. rst-class:: classref-property-setget
  201. - void **set_visible_instance_count** **(** :ref:`int<class_int>` value **)**
  202. - :ref:`int<class_int>` **get_visible_instance_count** **(** **)**
  203. Limits the number of instances drawn, -1 draws all instances. Changing this does not change the sizes of the buffers.
  204. .. rst-class:: classref-section-separator
  205. ----
  206. .. rst-class:: classref-descriptions-group
  207. Method Descriptions
  208. -------------------
  209. .. _class_MultiMesh_method_get_aabb:
  210. .. rst-class:: classref-method
  211. :ref:`AABB<class_AABB>` **get_aabb** **(** **)** |const|
  212. Returns the visibility axis-aligned bounding box in local space. See also :ref:`VisualInstance.get_transformed_aabb<class_VisualInstance_method_get_transformed_aabb>`.
  213. .. rst-class:: classref-item-separator
  214. ----
  215. .. _class_MultiMesh_method_get_instance_color:
  216. .. rst-class:: classref-method
  217. :ref:`Color<class_Color>` **get_instance_color** **(** :ref:`int<class_int>` instance **)** |const|
  218. Gets a specific instance's color.
  219. .. rst-class:: classref-item-separator
  220. ----
  221. .. _class_MultiMesh_method_get_instance_custom_data:
  222. .. rst-class:: classref-method
  223. :ref:`Color<class_Color>` **get_instance_custom_data** **(** :ref:`int<class_int>` instance **)** |const|
  224. Returns the custom data that has been set for a specific instance.
  225. .. rst-class:: classref-item-separator
  226. ----
  227. .. _class_MultiMesh_method_get_instance_transform:
  228. .. rst-class:: classref-method
  229. :ref:`Transform<class_Transform>` **get_instance_transform** **(** :ref:`int<class_int>` instance **)** |const|
  230. Returns the :ref:`Transform<class_Transform>` of a specific instance.
  231. .. rst-class:: classref-item-separator
  232. ----
  233. .. _class_MultiMesh_method_get_instance_transform_2d:
  234. .. rst-class:: classref-method
  235. :ref:`Transform2D<class_Transform2D>` **get_instance_transform_2d** **(** :ref:`int<class_int>` instance **)** |const|
  236. Returns the :ref:`Transform2D<class_Transform2D>` of a specific instance.
  237. .. rst-class:: classref-item-separator
  238. ----
  239. .. _class_MultiMesh_method_reset_instance_physics_interpolation:
  240. .. rst-class:: classref-method
  241. void **reset_instance_physics_interpolation** **(** :ref:`int<class_int>` instance **)**
  242. When using *physics interpolation*, this function allows you to prevent interpolation on an instance in the current physics tick.
  243. This allows you to move instances instantaneously, and should usually be used when initially placing an instance such as a bullet to prevent graphical glitches.
  244. .. rst-class:: classref-item-separator
  245. ----
  246. .. _class_MultiMesh_method_set_as_bulk_array:
  247. .. rst-class:: classref-method
  248. void **set_as_bulk_array** **(** :ref:`PoolRealArray<class_PoolRealArray>` array **)**
  249. Sets all data related to the instances in one go. This is especially useful when loading the data from disk or preparing the data from GDNative.
  250. All data is packed in one large float array. An array may look like this: Transform for instance 1, color data for instance 1, custom data for instance 1, transform for instance 2, color data for instance 2, etc...
  251. \ :ref:`Transform<class_Transform>` is stored as 12 floats, :ref:`Transform2D<class_Transform2D>` is stored as 8 floats, ``COLOR_8BIT`` / ``CUSTOM_DATA_8BIT`` is stored as 1 float (4 bytes as is) and ``COLOR_FLOAT`` / ``CUSTOM_DATA_FLOAT`` is stored as 4 floats.
  252. .. rst-class:: classref-item-separator
  253. ----
  254. .. _class_MultiMesh_method_set_as_bulk_array_interpolated:
  255. .. rst-class:: classref-method
  256. void **set_as_bulk_array_interpolated** **(** :ref:`PoolRealArray<class_PoolRealArray>` array_current, :ref:`PoolRealArray<class_PoolRealArray>` array_previous **)**
  257. An alternative version of :ref:`set_as_bulk_array<class_MultiMesh_method_set_as_bulk_array>` which can be used with *physics interpolation*. This method takes two arrays, and can set the data for the current and previous tick in one go. The renderer will automatically interpolate the data at each frame.
  258. This is useful for situations where the order of instances may change from physics tick to tick, such as particle systems.
  259. When the order of instances is coherent, the simpler :ref:`set_as_bulk_array<class_MultiMesh_method_set_as_bulk_array>` can still be used with interpolation.
  260. .. rst-class:: classref-item-separator
  261. ----
  262. .. _class_MultiMesh_method_set_instance_color:
  263. .. rst-class:: classref-method
  264. void **set_instance_color** **(** :ref:`int<class_int>` instance, :ref:`Color<class_Color>` color **)**
  265. Sets the color of a specific instance by *multiplying* the mesh's existing vertex colors.
  266. For the color to take effect, ensure that :ref:`color_format<class_MultiMesh_property_color_format>` is non-``null`` on the **MultiMesh** and :ref:`Material3D.vertex_color_use_as_albedo<class_Material3D_property_vertex_color_use_as_albedo>` is ``true`` on the material. If the color doesn't look as expected, make sure the material's albedo color is set to pure white (``Color(1, 1, 1)``).
  267. .. rst-class:: classref-item-separator
  268. ----
  269. .. _class_MultiMesh_method_set_instance_custom_data:
  270. .. rst-class:: classref-method
  271. void **set_instance_custom_data** **(** :ref:`int<class_int>` instance, :ref:`Color<class_Color>` custom_data **)**
  272. Sets custom data for a specific instance. Although :ref:`Color<class_Color>` is used, it is just a container for 4 floating point numbers. The format of the number can change depending on the :ref:`CustomDataFormat<enum_MultiMesh_CustomDataFormat>` used.
  273. .. rst-class:: classref-item-separator
  274. ----
  275. .. _class_MultiMesh_method_set_instance_transform:
  276. .. rst-class:: classref-method
  277. void **set_instance_transform** **(** :ref:`int<class_int>` instance, :ref:`Transform<class_Transform>` transform **)**
  278. Sets the :ref:`Transform<class_Transform>` for a specific instance.
  279. .. rst-class:: classref-item-separator
  280. ----
  281. .. _class_MultiMesh_method_set_instance_transform_2d:
  282. .. rst-class:: classref-method
  283. void **set_instance_transform_2d** **(** :ref:`int<class_int>` instance, :ref:`Transform2D<class_Transform2D>` transform **)**
  284. Sets the :ref:`Transform2D<class_Transform2D>` for a specific instance.
  285. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  286. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  287. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  288. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`