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 UV 坐标,使用 uv2_padding 设置的间距。光照映射需要 UV2。
AABB custom_aabb = AABB(0, 0, 0, 0, 0, 0)
🔗
用用户定义的用于使用视锥剔除的一种替代 AABB。在使用着色器偏移顶点时,避免非预期的剔除特别有用。
打开后会颠倒各个三角形中顶点的顺序,导致绘制网格的背面。
和在 BaseMaterial3D.cull_mode 中使用 BaseMaterial3D.CULL_FRONT 的效果一致。
该图元网格的当前 Material。
如果设置了 add_uv2,则指定沿网格接缝被应用的以像素为单位的填充。较低的填充值允许更好地利用光照贴图纹理(导致更高的纹素密度),但可能会沿边缘引入可见的光照贴图渗色。
如果在生成网格时无法确定光照贴图纹理的大小,则计算 UV2 时假定纹理大小为 1024x1024。
方法说明
Array _create_mesh_array() virtual const 🔗
重写该方法以自定义应如何生成该基本网格。应该返回一个 Array,其中每个元素都是该网格所需的另一个值数组(请参阅 ArrayType 常量)。
Array get_mesh_arrays() const 🔗
返回用于构成 Mesh 表面的网格数组。结果可以传递给 ArrayMesh.add_surface_from_arrays 创建新的表面。例如:
GDScriptC#
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() 🔗
请求根据其属性更新该基本网格。