材质决定了 MeshComponent 的可视化方式。 材质的主要特征之一是它的颜色, 颜色属性可用于为整个 MeshComponent 设置统一的颜色。 使用 colorTexture 属性将图像映射到格网组件上,使用为 Mesh.vertexAttributes 中的每个折点指定的 uv 坐标。
材质属性支持许多方便的自动转换类型,包括十六进制颜色字符串和众所周知的颜色字符串(自动转换为 Color),或表示 URL 的字符串影像,HTMLImageElements,HTMLCanvasElements,HTMLVideoElement,或 ImageData(自动转换为 MeshTexture)。
// 创建使用颜色的材质
const meshWithColor = new MeshComponent({
// 自动转换为 MeshMaterial
material: {
color: "#ff00ff"
}
});
// 通过链接到图像 url 创建使用纹理的材质
const meshTextureByUrl = new MeshTexture({
url: "./image.png"
});
const boxMesh = Mesh.createBox(location, {
material: {
colorTexture: meshTextureByUrl
}
});
// 创建一个使用来自画布元素的纹理的材质
function createLinearGradient() {
const canvas = document.createElement("canvas");
canvas.width = 32;
canvas.height = 32;
const ctx = canvas.getContext("2d");
// 创建用于填充画布的线性渐变
const gradient = ctx.createLinearGradient(0, 0, 0, 32);
gradient.addColorStop(0, "#00ff00");
gradient.addColorStop(1, "#009900");
// 用渐变图案填充画布
ctx.fillStyle = gradient;
ctx.fillRect(0, 0, 32, 32);
return canvas;
}
const component = new MeshComponent({
material: {
// 将画布元素自动转换到 MeshTexture 实例
colorTexture: createLinearGradient()
}
});
构造函数
属性列表
名称 | 类型 | 描述 | 类 | |
---|---|---|---|---|
Number | 更多信息 指定如何处理对象上的透明度。 | 更多信息 | MeshMaterial | |
String | 更多信息 指定如何处理对象上的透明度。 | 更多信息 | MeshMaterial | |
Color | 更多信息 为格网组件指定单一的统一颜色。 | 更多信息 | MeshMaterial | |
MeshTexture | 更多信息 指定要从中获取颜色信息的纹理。 | 更多信息 | MeshMaterial | |
String | 更多信息 类名。 | 更多信息 | Accessor | |
Boolean | 更多信息 指定是显示每个三角形的两边,还是仅显示正面。 | 更多信息 | MeshMaterial | |
MeshTexture | 更多信息 指定从中获取正常信息的纹理。 | 更多信息 | MeshMaterial |
属性详细说明
-
alphaCutoff Number
-
指定如何处理对象的透明度。 如果 alphaMode 设置为
mask
或auto
此属性指定掩膜发生的截止值(即 Mesh 的对应部分被渲染为完全透明)。- 默认值:0.5
-
alphaMode String
-
指定如何处理对象的透明度。 另请参阅 alphaCutoff。
类型 描述 opaque Alpha 将被忽略,并且对象将渲染为完全不透明。 blend Alpha 值用于渐进透明,在对象及其背景之间混合。 mask Alpha 值用于二进制透明度,显示对象或其背景。另请参见 alphaCutoff。 auto 该实现混合了 mask
和blend
设置,在它alphaCutoff
上面掩膜和混合。可选值:"auto"|"blend"|"opaque"|"mask"
- 默认值:"auto"
-
为格网组件指定单一、统一的颜色。 这可以自动使用命名字符串、十六进制字符串、rgb 或 rgba 值数组、具有
r
、g
、b
和a
属性的对象,或 Color 对象。
-
colorTexture MeshTextureautocast
-
指定从中获取颜色信息的纹理。 使用 Mesh.vertexAttributes 中为每个折点指定的 uv 坐标访问纹理。
-
类名。类的名称声明格式为
geoscene.folder.className
。
-
doubleSided Boolean
-
指定是显示每个三角形的两边,还是仅显示正面。
- 默认值:true
-
normalTexture MeshTextureautocast
-
指定从中获取法线信息的纹理。 使用 Mesh.vertexAttributes 中为每个折点指定的 uv 坐标访问纹理。