mirror of
https://github.com/godotengine/godot-docs.git
synced 2026-01-05 22:09:56 +03:00
172 lines
9.3 KiB
ReStructuredText
172 lines
9.3 KiB
ReStructuredText
.. Generated automatically by doc/tools/makerst.py in Godot's source tree.
|
|
.. DO NOT EDIT THIS FILE, but the MultiMesh.xml source instead.
|
|
.. The source is found in doc/classes or modules/<name>/doc_classes.
|
|
|
|
.. _class_MultiMesh:
|
|
|
|
MultiMesh
|
|
=========
|
|
|
|
**Inherits:** :ref:`Resource<class_resource>` **<** :ref:`Reference<class_reference>` **<** :ref:`Object<class_object>`
|
|
|
|
**Category:** Core
|
|
|
|
Brief Description
|
|
-----------------
|
|
|
|
Provides high performance mesh instancing.
|
|
|
|
Member Functions
|
|
----------------
|
|
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Rect3<class_rect3>` | :ref:`get_aabb<class_MultiMesh_get_aabb>` **(** **)** const |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`int<class_int>` | :ref:`get_color_format<class_MultiMesh_get_color_format>` **(** **)** const |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Color<class_color>` | :ref:`get_instance_color<class_MultiMesh_get_instance_color>` **(** :ref:`int<class_int>` instance **)** const |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`int<class_int>` | :ref:`get_instance_count<class_MultiMesh_get_instance_count>` **(** **)** const |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Transform<class_transform>` | :ref:`get_instance_transform<class_MultiMesh_get_instance_transform>` **(** :ref:`int<class_int>` instance **)** const |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Mesh<class_mesh>` | :ref:`get_mesh<class_MultiMesh_get_mesh>` **(** **)** const |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`int<class_int>` | :ref:`get_transform_format<class_MultiMesh_get_transform_format>` **(** **)** const |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| void | :ref:`set_color_format<class_MultiMesh_set_color_format>` **(** :ref:`int<class_int>` format **)** |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| void | :ref:`set_instance_color<class_MultiMesh_set_instance_color>` **(** :ref:`int<class_int>` instance, :ref:`Color<class_color>` color **)** |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| void | :ref:`set_instance_count<class_MultiMesh_set_instance_count>` **(** :ref:`int<class_int>` count **)** |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| void | :ref:`set_instance_transform<class_MultiMesh_set_instance_transform>` **(** :ref:`int<class_int>` instance, :ref:`Transform<class_transform>` transform **)** |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| void | :ref:`set_mesh<class_MultiMesh_set_mesh>` **(** :ref:`Mesh<class_mesh>` mesh **)** |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| void | :ref:`set_transform_format<class_MultiMesh_set_transform_format>` **(** :ref:`int<class_int>` format **)** |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
Member Variables
|
|
----------------
|
|
|
|
.. _class_MultiMesh_color_array:
|
|
|
|
- :ref:`PoolColorArray<class_poolcolorarray>` **color_array**
|
|
|
|
.. _class_MultiMesh_color_format:
|
|
|
|
- :ref:`int<class_int>` **color_format**
|
|
|
|
.. _class_MultiMesh_instance_count:
|
|
|
|
- :ref:`int<class_int>` **instance_count**
|
|
|
|
.. _class_MultiMesh_mesh:
|
|
|
|
- :ref:`Mesh<class_mesh>` **mesh**
|
|
|
|
.. _class_MultiMesh_transform_array:
|
|
|
|
- :ref:`PoolVector3Array<class_poolvector3array>` **transform_array**
|
|
|
|
.. _class_MultiMesh_transform_format:
|
|
|
|
- :ref:`int<class_int>` **transform_format**
|
|
|
|
|
|
Numeric Constants
|
|
-----------------
|
|
|
|
- **TRANSFORM_2D** = **0**
|
|
- **TRANSFORM_3D** = **1**
|
|
- **COLOR_NONE** = **0**
|
|
- **COLOR_8BIT** = **1**
|
|
- **COLOR_FLOAT** = **2**
|
|
|
|
Description
|
|
-----------
|
|
|
|
MultiMesh provides low level mesh instancing. If the amount of :ref:`Mesh<class_mesh>` instances needed goes from hundreds to thousands (and most need to be visible at close proximity) creating such a large amount of :ref:`MeshInstance<class_meshinstance>` nodes may affect performance by using too much CPU or video memory.
|
|
|
|
For this case a MultiMesh becomes very useful, as it can draw thousands of instances with little API overhead.
|
|
|
|
As a drawback, if the instances are too far away of each other, performance may be reduced as every single instance will always rendered (they are spatially indexed as one, for the whole object).
|
|
|
|
Since instances may have any behavior, the Rect3 used for visibility must be provided by the user.
|
|
|
|
Member Function Description
|
|
---------------------------
|
|
|
|
.. _class_MultiMesh_get_aabb:
|
|
|
|
- :ref:`Rect3<class_rect3>` **get_aabb** **(** **)** const
|
|
|
|
Return the visibility Rect3.
|
|
|
|
.. _class_MultiMesh_get_color_format:
|
|
|
|
- :ref:`int<class_int>` **get_color_format** **(** **)** const
|
|
|
|
.. _class_MultiMesh_get_instance_color:
|
|
|
|
- :ref:`Color<class_color>` **get_instance_color** **(** :ref:`int<class_int>` instance **)** const
|
|
|
|
Get the color of a specific instance.
|
|
|
|
.. _class_MultiMesh_get_instance_count:
|
|
|
|
- :ref:`int<class_int>` **get_instance_count** **(** **)** const
|
|
|
|
Return the amount of instances that is going to be drawn.
|
|
|
|
.. _class_MultiMesh_get_instance_transform:
|
|
|
|
- :ref:`Transform<class_transform>` **get_instance_transform** **(** :ref:`int<class_int>` instance **)** const
|
|
|
|
Return the transform of a specific instance.
|
|
|
|
.. _class_MultiMesh_get_mesh:
|
|
|
|
- :ref:`Mesh<class_mesh>` **get_mesh** **(** **)** const
|
|
|
|
Return the :ref:`Mesh<class_mesh>` resource drawn as multiple instances.
|
|
|
|
.. _class_MultiMesh_get_transform_format:
|
|
|
|
- :ref:`int<class_int>` **get_transform_format** **(** **)** const
|
|
|
|
.. _class_MultiMesh_set_color_format:
|
|
|
|
- void **set_color_format** **(** :ref:`int<class_int>` format **)**
|
|
|
|
.. _class_MultiMesh_set_instance_color:
|
|
|
|
- void **set_instance_color** **(** :ref:`int<class_int>` instance, :ref:`Color<class_color>` color **)**
|
|
|
|
Set the color of a specific instance.
|
|
|
|
.. _class_MultiMesh_set_instance_count:
|
|
|
|
- void **set_instance_count** **(** :ref:`int<class_int>` count **)**
|
|
|
|
Set the amount of instances that is going to be drawn. Changing this number will erase all the existing instance transform and color data.
|
|
|
|
.. _class_MultiMesh_set_instance_transform:
|
|
|
|
- void **set_instance_transform** **(** :ref:`int<class_int>` instance, :ref:`Transform<class_transform>` transform **)**
|
|
|
|
Set the transform for a specific instance.
|
|
|
|
.. _class_MultiMesh_set_mesh:
|
|
|
|
- void **set_mesh** **(** :ref:`Mesh<class_mesh>` mesh **)**
|
|
|
|
Set the :ref:`Mesh<class_mesh>` resource to be drawn in multiple instances.
|
|
|
|
.. _class_MultiMesh_set_transform_format:
|
|
|
|
- void **set_transform_format** **(** :ref:`int<class_int>` format **)**
|
|
|
|
|