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...
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 创建新的表面。例如:
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() 🔗
请求根据其属性更新该基本网格。