mirror of
https://github.com/godotengine/godot-docs.git
synced 2025-12-31 17:49:03 +03:00
116 lines
5.0 KiB
ReStructuredText
116 lines
5.0 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:`AABB<class_aabb>` | :ref:`get_aabb<class_MultiMesh_get_aabb>` **(** **)** const |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Color<class_color>` | :ref:`get_instance_color<class_MultiMesh_get_instance_color>` **(** :ref:`int<class_int>` instance **)** const |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Transform<class_transform>` | :ref:`get_instance_transform<class_MultiMesh_get_instance_transform>` **(** :ref:`int<class_int>` instance **)** const |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| void | :ref:`set_instance_color<class_MultiMesh_set_instance_color>` **(** :ref:`int<class_int>` instance, :ref:`Color<class_color>` color **)** |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| void | :ref:`set_instance_transform<class_MultiMesh_set_instance_transform>` **(** :ref:`int<class_int>` instance, :ref:`Transform<class_transform>` transform **)** |
|
|
+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
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 AABB used for visibility must be provided by the user.
|
|
|
|
Member Function Description
|
|
---------------------------
|
|
|
|
.. _class_MultiMesh_get_aabb:
|
|
|
|
- :ref:`AABB<class_aabb>` **get_aabb** **(** **)** const
|
|
|
|
Return the visibility AABB.
|
|
|
|
.. _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_transform:
|
|
|
|
- :ref:`Transform<class_transform>` **get_instance_transform** **(** :ref:`int<class_int>` instance **)** const
|
|
|
|
Return the transform of a specific instance.
|
|
|
|
.. _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_transform:
|
|
|
|
- void **set_instance_transform** **(** :ref:`int<class_int>` instance, :ref:`Transform<class_transform>` transform **)**
|
|
|
|
Set the transform for a specific instance.
|
|
|
|
|