MeshComponent 类用于将一个或多个材质应用于单个格网。faces 属性是格网 vertexAttributes 中的平面索引数组并定义格网中要应用材质的折点区域。平面索引数组中的每三个值指定要渲染的三角形。
要为整个格网定义材质,faces 可以设置为 null
,这表示为格网定义的所有折点应该渲染为连续的三角形。
一个格网组件定义了一个材质,它决定了三角形区域的颜色。 此格网颜色可以是单个值,也可以是通过格网 vertexAttributes 中指定的 uv 坐标映射到折点的图像。 shading 指定用于计算光照如何影响格网着色的法线类型。
格网组件可以添加到 Mesh.components[] 数组中。
let component1 = new MeshComponent({
// 索引是指格网 vertexAttributes 中指定的折点。
// 这里我们指的是由格网的前 6 个折点组成的 2 个三角形。
faces: [0, 1, 2, 3, 4, 5],
material: {
color: "green"
}
});
let component2 = new MeshComponent({
faces: [6, 7, 8, 9, 10, 11],
material: {
color: "red"
},
shading: "smooth"
});
let mesh = new Mesh({
// ... 指定折点属性
components: [component1, component2]
});
- 另参阅:
构造函数
属性列表
名称 | 类型 | 描述 | 类 | |
---|---|---|---|---|
String | 更多信息 类名。 | 更多信息 | Accessor | |
Uint32Array | 更多信息 引用 vertexAttributes 中折点的索引的平面数组组件所属格网的属性。 | 更多信息 | MeshComponent | |
MeshMaterial|MeshMaterialMetallicRoughness | 更多信息 材质决定了组件的可视化方式。 | 更多信息 | MeshComponent | |
String | 更多信息 指定用于照明的法线类型。 | 更多信息 | MeshComponent |
属性详细说明
-
类名。类的名称声明格式为
geoscene.folder.className
。
-
faces Uint32Arrayautocast自动转换自 Number[]|Uint16Array
-
一个平面索引数组,引用组件所属格网的 vertexAttributes 中的折点。 每个索引的三元组定义一个要渲染的三角形(即 faces 数组的长度必须始终是 3 的倍数)。 请注意,索引指的是 vertices 而不是 vertexAttributes.position 数组。
如果 faces 为
null
,则格网中的所有折点都将被渲染为此组件的三角形。示例代码:let mesh = new Mesh({ vertexAttributes: { position: [ 2.336006, 48.860818, 0 2.336172, 48.861114, 0 2.335724, 48.861229, 0 2.335563, 48.860922, 0 ] }, // 创建两个组件,这样我们就可以为要渲染的两个三角形使用单独的材质。 components: [ { faces: [0, 1, 2], material: { color: "red" } }, { faces: [0, 2, 3], material: { color: "green" } } ] });
-
材料决定了组件的可视化方式。
-
shading String
-
指定用于照明的法线类型。这决定了对象的外观是平滑的还是棱角分明的。支持以下着色类型:
类型 描述 source 阴影使用折点属性中定义的法线。如果未定义法线,则阴影默认返回 flat
flat 着色使用每个三角形面创建的法线。这种类型的着色适用于具有清晰边缘的对象,如框。 smooth 着色使用每个折点法线,这些法线平均折点所属的所有面的法线。这种类型的着色适用于近似于曲面(如球体)的格网。 可选值:"source"|"flat"|"smooth"
方法列表
名称 | 返回值类型 | 描述 | 类 | |
---|---|---|---|---|
MeshComponent | 更多信息 创建深度克隆。 | 更多信息 | MeshComponent |
方法详细说明
-
clone(){MeshComponent}
-
创建深度克隆。
返回值:类型 描述 MeshComponent 返回调用此方法对象的深度克隆。