PrimitiveMesh

继承: Mesh < Resource < RefCounted < Object

派生: BoxMesh, CapsuleMesh, CylinderMesh, PlaneMesh, PointMesh, PrismMesh, RibbonTrailMesh, SphereMesh, TextMesh, TorusMesh, TubeTrailMesh

所有原始网格的基类。处理将Material应用于原始网格。

描述

所有原始网格的基类。将Material应用于原始网格的句柄。示例包括BoxMeshCapsuleMeshCylinderMeshPlaneMeshPrismMeshSphereMesh

属性

bool

add_uv2

false

AABB

custom_aabb

AABB(0, 0, 0, 0, 0, 0)

bool

flip_faces

false

Material

material

float

uv2_padding

2.0

方法


属性说明

bool add_uv2 = false 🔗

  • void set_add_uv2(value: bool)

  • bool get_add_uv2()

如果设置,则使用uv2_padding设置生成应用填充的UV2 UV坐标。光照映射需要UV2。


AABB custom_aabb = AABB(0, 0, 0, 0, 0, 0) 🔗

  • void set_custom_aabb(value: AABB)

  • AABB get_custom_aabb()

使用用户定义的用于截头体剔除的AABB覆盖AABB。在使用着色器偏移顶点时避免意外剔除特别有用。


bool flip_faces = false 🔗

  • void set_flip_faces(value: bool)

  • bool get_flip_faces()

如果设置,则每个三角形中顶点的顺序颠倒,从而绘制网格的背面。

这与在BaseMaterial3D.cull_mode中使用BaseMaterial3D.CULL_FRONT给出相同的结果。


Material material 🔗

原始网格的当前Material


float uv2_padding = 2.0 🔗

  • void set_uv2_padding(value: float)

  • float get_uv2_padding()

如果设置了add_uv2,则指定沿网格接缝应用的像素填充。较低的填充值允许更好地利用光照贴图纹理(导致更高的纹理密度),但可能会沿边缘引入可见的光照贴图出血。

如果生成网格时无法确定光照贴图纹理的大小,则假设纹理大小为1024x1024计算UV2。


方法说明

Array _create_mesh_array() virtual const 🔗

重写此方法以自定义应如何生成此原始网格。应该返回一个Array,其中每个元素都是网格所需的另一个值数组(请参阅ArrayType常量)。


Array get_mesh_arrays() const 🔗

返回用于构成此基本网格表面的网格数组。示例:将结果传递给 ArrayMesh.add_surface_from_arrays() 以创建新的表面:

var c = CylinderMesh.new()
var arr_mesh = ArrayMesh.new()
arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, c.get_mesh_arrays())

void request_update() 🔗

根据其属性请求更新此原始网格。