123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- <?xml version="1.0" encoding="UTF-8" ?>
- <class name="MultiMesh" inherits="Resource" category="Core" version="3.1">
- <brief_description>
- Provides high performance mesh instancing.
- </brief_description>
- <description>
- MultiMesh provides low level mesh instancing. If the amount of [Mesh] instances needed goes from hundreds to thousands (and most need to be visible at close proximity) creating such a large amount of [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.
- </description>
- <tutorials>
- </tutorials>
- <demos>
- </demos>
- <methods>
- <method name="get_aabb" qualifiers="const">
- <return type="AABB">
- </return>
- <description>
- Return the visibility AABB.
- </description>
- </method>
- <method name="get_instance_color" qualifiers="const">
- <return type="Color">
- </return>
- <argument index="0" name="instance" type="int">
- </argument>
- <description>
- Get the color of a specific instance.
- </description>
- </method>
- <method name="get_instance_custom_data" qualifiers="const">
- <return type="Color">
- </return>
- <argument index="0" name="instance" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_instance_transform" qualifiers="const">
- <return type="Transform">
- </return>
- <argument index="0" name="instance" type="int">
- </argument>
- <description>
- Return the transform of a specific instance.
- </description>
- </method>
- <method name="set_instance_color">
- <return type="void">
- </return>
- <argument index="0" name="instance" type="int">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
- <description>
- Set the color of a specific instance.
- </description>
- </method>
- <method name="set_instance_custom_data">
- <return type="void">
- </return>
- <argument index="0" name="instance" type="int">
- </argument>
- <argument index="1" name="custom_data" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_instance_transform">
- <return type="void">
- </return>
- <argument index="0" name="instance" type="int">
- </argument>
- <argument index="1" name="transform" type="Transform">
- </argument>
- <description>
- Set the transform for a specific instance.
- </description>
- </method>
- </methods>
- <members>
- <member name="color_format" type="int" setter="set_color_format" getter="get_color_format" enum="MultiMesh.ColorFormat">
- </member>
- <member name="custom_data_format" type="int" setter="set_custom_data_format" getter="get_custom_data_format" enum="MultiMesh.CustomDataFormat">
- </member>
- <member name="instance_count" type="int" setter="set_instance_count" getter="get_instance_count">
- </member>
- <member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh">
- </member>
- <member name="transform_format" type="int" setter="set_transform_format" getter="get_transform_format" enum="MultiMesh.TransformFormat">
- </member>
- </members>
- <constants>
- <constant name="TRANSFORM_2D" value="0" enum="TransformFormat">
- </constant>
- <constant name="TRANSFORM_3D" value="1" enum="TransformFormat">
- </constant>
- <constant name="COLOR_NONE" value="0" enum="ColorFormat">
- </constant>
- <constant name="COLOR_8BIT" value="1" enum="ColorFormat">
- </constant>
- <constant name="COLOR_FLOAT" value="2" enum="ColorFormat">
- </constant>
- <constant name="CUSTOM_DATA_NONE" value="0" enum="CustomDataFormat">
- </constant>
- <constant name="CUSTOM_DATA_8BIT" value="1" enum="CustomDataFormat">
- </constant>
- <constant name="CUSTOM_DATA_FLOAT" value="2" enum="CustomDataFormat">
- </constant>
- </constants>
- </class>
|