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
}
});
// Support for autocasting within a mesh material constructor
const meshWithAutocastMaterial = Mesh.createSphere(location, {
material: {
colorTexture: {
url: "./image.png"
}
}
});
// Mesh materials also support additional advanced autocasting types
// such as a Canvas element. In this case the canvas element will be
// available in the MeshTexture.data property.
const meshWithCanvasAutocastMaterial = Mesh.createSphere(location, {
material: {
colorTexture: canvasElement
}
});
// When using a video as a texture, you need to create a Video element
// and pass it in the MeshTexture.data property.
const video = document.createElement("video");
video.src = "./my-video.mp4";
video.crossOrigin = "anonymous";
video.autoplay = true;
video.muted = true;
// The video needs to be added to the DOM and be located in
// the viewport in order for it to play
document.body.appendChild(video);
video.style.position = "absolute";
video.style.top = 0;
// Hide the video element
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 坐标。"repeat"、"clamp" 或 "mirror” 之一。也可使用一个对象分别为两个纹理轴指定:
{ vertical: "clamp", horizontal: "repeat" }
可能值:"clamp"|"repeat"|"mirror"
- 默认值:"repeat"
方法概述
名称 | 返回值类值 | 描述 | 类 |
---|---|---|---|
添加一个或多个与对象的生命周期相关联的句柄。 更多详情 | Accessor | ||
MeshTexture | 创建深度克隆。 更多详情 | MeshTexture | |
Boolean | 如果存在指定的句柄组,则返回 true。 更多详情 | Accessor | |
移除对象拥有的句柄组。 更多详情 | Accessor |
方法详细说明
-
addHandles(handleOrHandles, groupKey)inherited起始版本:GeoScene Maps SDK for JavaScript 4.25
-
添加一个或多个与对象的生命周期相关联的句柄。当对象被销毁时,将移除句柄。
// Manually manage handles const handle = reactiveUtils.when( () => !view.updating, () => { wkidSelect.disabled = false; }, { once: true } ); // Handle gets removed when the object is destroyed. this.addHandles(handle);
参数handleOrHandles WatchHandle|WatchHandle[]对象销毁后,标记为要移除的句柄。
groupKey *optional标识句柄应添加到的组的键。组中的所有句柄稍后都可使用 Accessor.removeHandles() 进行删除。如果未提供键,则句柄将被添加到默认组。
-
clone(){MeshTexture}
-
创建深度克隆。
返回类型 描述 MeshTexture 调用此方法的对象的深度克隆。
-
起始版本:GeoScene Maps SDK for JavaScript 4.25
-
如果存在指定的句柄组,则返回 true。
参数groupKey *optional组键。
返回类型 描述 Boolean 如果存在指定的句柄组,则返回 true
。示例// Remove a named group of handles if they exist. if (obj.hasHandles("watch-view-updates")) { obj.removeHandles("watch-view-updates"); }
-
removeHandles(groupKey)inherited起始版本:GeoScene Maps SDK for JavaScript 4.25
-
移除对象拥有的句柄组。
参数groupKey *optional要移除的组键或组键的数组或集合。
示例obj.removeHandles(); // removes handles from default group obj.removeHandles("handle-group"); obj.removeHandles("other-handle-group");