123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- .. 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_format:
- - :ref:`ColorFormat<enum_multimesh_colorformat>` **color_format**
- .. _class_MultiMesh_instance_count:
- - :ref:`int<class_int>` **instance_count**
- .. _class_MultiMesh_mesh:
- - :ref:`Mesh<class_mesh>` **mesh**
- .. _class_MultiMesh_transform_format:
- - :ref:`TransformFormat<enum_multimesh_transformformat>` **transform_format**
- Enums
- -----
- .. _enum_MultiMesh_TransformFormat:
- enum **TransformFormat**
- - **TRANSFORM_2D** = **0**
- - **TRANSFORM_3D** = **1**
- .. _enum_MultiMesh_ColorFormat:
- enum **ColorFormat**
- - **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.
|