Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
MultiMesh¶
Inherits: Resource < RefCounted < Object
使用 GPU 实例提供单一网格的高性能多次绘制。
Description¶
MultiMesh 提供了低级别的网格实例化功能。绘制数以千计的 MeshInstance3D 节点可能会很慢,因为每个对象都要提交给 GPU 然后单独绘制。
MultiMesh 要快得多,因为它可以通过一次绘制调用来绘制成千上万的实例,从而减少 API 的开销。
缺点是,如果实例之间的距离太远,性能可能会降低,因为每一个实例总是会被渲染(对于整个对象,它们在空间上被索引为一个)。
由于实例可能具有任何行为,因此用于可见性的 AABB 必须由用户提供。
注意:MultiMesh 是单个对象,因此适用相同的对每个对象的最大灯光限制。这意味着,一旦最大灯光被一个或多个实例消耗了,其余的 MultiMesh 实例将不会接收任何光照。
注意:在 MultiMesh 中使用的 Blend Shape 将被忽略。
Tutorials¶
Properties¶
|
||
|
||
|
||
|
||
|
||
|
Methods¶
get_aabb ( ) const |
|
get_instance_color ( int instance ) const |
|
get_instance_custom_data ( int instance ) const |
|
get_instance_transform ( int instance ) const |
|
get_instance_transform_2d ( int instance ) const |
|
void |
set_instance_color ( int instance, Color color ) |
void |
set_instance_custom_data ( int instance, Color custom_data ) |
void |
set_instance_transform ( int instance, Transform3D transform ) |
void |
set_instance_transform_2d ( int instance, Transform2D transform ) |
Enumerations¶
enum TransformFormat:
TransformFormat TRANSFORM_2D = 0
使用 2D 变换时使用此选项。
TransformFormat TRANSFORM_3D = 1
使用 3D 变换时使用此选项。
Property Descriptions¶
PackedFloat32Array buffer = PackedFloat32Array()
void set_buffer ( PackedFloat32Array value )
PackedFloat32Array get_buffer ( )
There is currently no description for this property. Please help us by contributing one!
PackedColorArray color_array
PackedColorArray custom_data_array
int instance_count = 0
将被绘制的实例数。这会清除缓冲区,并(重新)调整其大小。之后设置的数据格式或标志将无效。
默认情况下,所有实例都会被绘制,但可以使用 visible_instance_count 来限制它。
Mesh mesh
要被实例化的 Mesh 资源。
各个实例的外观可以通过 set_instance_color 和 set_instance_custom_data 来修改。
PackedVector2Array transform_2d_array
PackedVector3Array transform_array
TransformFormat transform_format = 0
void set_transform_format ( TransformFormat value )
TransformFormat get_transform_format ( )
用于变换网格的变换格式,可以是 2D 或 3D。
bool use_colors = false
void set_use_colors ( bool value )