Mesh

Mesh class

一个网格由许多 n 边多边形组成。

public class Mesh : Geometry, IEnumerable<int[]>, IMeshConvertible

构造函数

姓名描述
Mesh()初始化Mesh类.
Mesh(Bitmap)使用指定的高度图构造网格, 如果高度图的像素格式包含多个分量,则第一个(通常是红色)分量将用作高度值(z) 控制点的 x 和 y 分量是归一化的像素坐标.
Mesh(string)初始化Mesh类.
Mesh(Bitmap, Matrix4)使用指定的高度图构造网格, 如果高度图的像素格式包含多个分量,则第一个(通常是红色)分量将用作高度值(z) 控制点的 x 和 y 分量是归一化的像素坐标.
Mesh(Bitmap, bool, Matrix4)使用指定的高度图构造网格, 如果高度图的像素格式包含多个分量,则第一个(通常是红色)分量将用作高度值(z) 控制点的 x 和 y 分量是归一化的像素坐标.

特性

姓名描述
CastShadows { get; set; }获取或设置此几何体是否可以投射阴影
ControlPoints { get; }获取所有控制点
Deformers { get; }获取与此几何图形关联的所有变形器。
Edges { get; }获取网格的边缘。边缘在网格中是可选的,所以它可以是空的。
Excluded { get; set; }获取或设置导出时是否排除该实体。
virtual Name { get; set; }获取或设置名称。
ParentNode { get; set; }获取或设置第一个父节点,如果设置了第一个父节点,该实体将与其他父节点分离。
ParentNodes { get; }获取所有父节点,一个实体可以附加到多个父节点进行几何实例化
PolygonCount { get; }获取多边形的计数
Polygons { get; }获取网格的多边形定义
Properties { get; }获取所有属性的集合。
ReceiveShadows { get; set; }获取或设置此几何体是否可以接收阴影。
Scene { get; }获取该对象所属的场景
VertexElements { get; }获取所有顶点元素
Visible { get; set; }获取或设置几何是否可见

方法

姓名描述
AddElement(VertexElement)将现有顶点元素添加到当前几何图形
CreateElement(VertexElementType)创建具有指定类型的顶点元素并将其添加到几何图形中。
CreateElement(VertexElementType, MappingMode, ReferenceMode)创建具有指定类型的顶点元素并将其添加到几何图形中。
CreateElementUV(TextureMapping)创建一个VertexElementUV具有给定的纹理映射类型。
CreateElementUV(TextureMapping, MappingMode, ReferenceMode)创建一个VertexElementUV具有给定的纹理映射类型。
CreatePolygon(int[])创建一个新的多边形,其中定义了所有顶点indices. 要逐个顶点创建多边形顶点,请使用PolygonBuilder.
CreatePolygon(int, int, int)创建一个具有 3 个顶点的多边形(三角形)
CreatePolygon(int[], int, int)创建一个新的多边形,其中定义了所有顶点indices. 要逐个顶点创建多边形顶点,请使用PolygonBuilder.
CreatePolygon(int, int, int, int)创建一个有 4 个顶点的多边形(四边形)
FindProperty(string)查找属性。 可以是动态属性(由 CreateDynamicProperty/SetProperty 创建) 或原生属性(由其名称标识)
GetBoundingBox()获取当前实体在其对象空间坐标系中的边界框。
GetDeformers<T>()
GetElement(VertexElementType)获取指定类型的顶点元素
virtual GetEntityRendererKey()获取渲染器中注册的实体渲染器的key
GetEnumerator()获取每个内部多边形的枚举器。
GetPolygonSize(int)获取指定多边形的顶点数。
GetProperty(string)获取指定属性的值
GetVertexElementOfUV(TextureMapping)得到一个VertexElementUV具有给定纹理映射类型 的实例
RemoveProperty(Property)删除动态属性。
RemoveProperty(string)移除名称标识的指定属性
SetProperty(string, object)设置指定属性的值
ToMesh()从当前实体获取 Mesh 实例。

例子

在网格中添加多边形: 穿过网格中的所有多边形:

int[] indices = new int[] {0, 1, 2};
mesh.CreatePolygon(indices);
foreach(int[] polygon in mesh)
{
    //处理多边形
}

也可以看看