PrimitiveMesh¶
继承: Mesh < Resource < RefCounted < Object
派生: BoxMesh, CapsuleMesh, CylinderMesh, PlaneMesh, PointMesh, PrismMesh, RibbonTrailMesh, SphereMesh, TextMesh, TorusMesh, TubeTrailMesh
所有原始网格的基类。处理将Material应用于原始网格。
描述¶
所有原始网格的基类。将Material应用于原始网格的句柄。示例包括BoxMesh、CapsuleMesh、CylinderMesh、PlaneMesh、PrismMesh和SphereMesh。
属性¶
|
||
|
||
|
||
|
方法¶
_create_mesh_array() virtual const |
|
get_mesh_arrays() const |
|
void |
属性说明¶
如果设置,则使用uv2_padding设置生成应用填充的UV2 UV坐标。光照映射需要UV2。
AABB custom_aabb = AABB(0, 0, 0, 0, 0, 0) 🔗
使用用户定义的用于截头体剔除的AABB覆盖AABB。在使用着色器偏移顶点时避免意外剔除特别有用。
如果设置,则每个三角形中顶点的顺序颠倒,从而绘制网格的背面。
这与在BaseMaterial3D.cull_mode中使用BaseMaterial3D.CULL_FRONT给出相同的结果。
原始网格的当前Material。
如果设置了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())
var c = new CylinderMesh();
var arrMesh = new ArrayMesh();
arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, c.GetMeshArrays());
void request_update() 🔗
根据其属性请求更新此原始网格。