MeshTexture 表示要用于 MeshMaterial 或 MeshMaterialMetallicRoughness 的影像数据。它通过其 uv 折点属性映射到格网。 MeshTexture 实例可以与 MeshComponent.material 属性一起使用,它们可以设置为 MeshMaterial.colorTexture 或 MeshMaterial.normalTexture。影像可以通过 url 或直接通过数据( HTMLImageElement, HTMLCanvasElement, HTMLVideoElement 或 ImageData)引用。
const meshColorByUrl = new MeshTexture({
url: "./image.png"
});
const mesh = Mesh.createBox(location, {
material: {
colorTexture: meshColorByUrl
}
});
const meshColorByCanvas = new MeshTexture({
data: canvasElement
});
const meshWithCanvasMaterial = Mesh.createBox(location, {
material: {
colorTexture: meshColorByCanvas
}
});
// 支持格网材质构造函数中的自动转换
const meshWithAutocastMaterial = Mesh.createSphere(location, {
material: {
colorTexture: {
url: "./image.png"
}
}
});
// 格网材质还支持其他高级自动转换类型,例如 Canvas 元素。
// 在这种情况下,画布元素将在 MeshTexture.data 属性中可用。
const meshWithCanvasAutocastMaterial = Mesh.createSphere(location, {
material: {
colorTexture: canvasElement
}
});
// 当使用视频作为纹理时,需要创建一个 Video 元素
// 并将其传递给 MeshTexture.data 属性。
const video = document.createElement("video");
video.src = "./my-video.mp4";
video.crossOrigin = "anonymous";
video.autoplay = true;
video.muted = true;
// 视频需要添加到 DOM 并位于视口中才能播放。
document.body.appendChild(video);
video.style.position = "absolute";
video.style.top = 0;
// 隐藏视频元素
video.style.height = 0;
video.style.visibility = "hidden";
const meshWithVideoMaterial = Mesh.createPlane(location, {
material: {
colorTexture: { data: video }
}
});
构造函数
属性列表
名称 | 类型 | 描述 | 类 | |
---|---|---|---|---|
HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|ImageData | 更多信息 对影像或视频数据的直接引用。 | 更多信息 | MeshTexture | |
String | 更多信息 类名。 | 更多信息 | Accessor | |
Boolean | 更多信息 指示影像数据是否应解释为半透明。 | 更多信息 | MeshTexture | |
String | 更多信息 影像资源的 URL。 | 更多信息 | MeshTexture | |
String|SeparableWrapModes | 更多信息 指定如何处理 [0, 1] 范围之外的 uv 坐标。 | 更多信息 | MeshTexture |
属性详细说明
-
直接引用影像或视频数据。 数据可以是影像元素,画布元素,视频元素或 ImageData。 如果数据设置为 视频元素,则该元素需要在 DOM 中可见。 数据属性与 url 属性互斥,设置数据会清除 url(如果有的话)。
-
类名。类的名称声明格式为
geoscene.folder.className
。
-
transparent Boolean
-
指示影像数据是否应被解释为半透明。 当数据属性包含画布元素或 ImageData 对象时,会自动派生默认值。 如果改为提供 .png 文件的 url,则假定存在透明度。 在所有其他情况下,它默认为
false
。- 默认值:undefined
-
url String
-
-
-
指定如何处理 [0, 1] 范围之外的 uv 坐标。 “重复”、“钳位”或“镜像”之一。 也可以使用一个对象分别为两个纹理轴指定:
{ vertical: "clamp", horizontal: "repeat" }
可选值:"clamp"|"repeat"|"mirror"
- 默认值:"repeat"
方法列表
名称 | 返回值类型 | 描述 | 类 | |
---|---|---|---|---|
MeshTexture | 更多信息 创建深度克隆。 | 更多信息 | MeshTexture |
方法详细说明
-
clone(){MeshTexture}
-
创建深度克隆。
返回值:类型 描述 MeshTexture 返回调用此方法对象的深度克隆。