MeshTexture

AMD: require(["geoscene/geometry/support/MeshTexture"], (MeshTexture) => { /* code goes here */ });
ESM: import MeshTexture from "@geoscene/core/geometry/support/MeshTexture";
类: geoscene/geometry/support/MeshTexture
继承于:MeshTexture Accessor
起始版本:GeoScene Maps SDK for JavaScript 4.11

MeshTexture 表示要用于 MeshMaterialMeshMaterialMetallicRoughness 的影像数据。它通过其 uv 折点属性映射到网格。MeshTexture 实例可以与 MeshComponent.material 属性一起使用,它们可以设置为 MeshMaterial.colorTextureMeshMaterial.normalTexture。影像可以通过 url 或直接通过数据 (HTMLImageElementHTMLCanvasElementHTMLVideoElementImageData) 引用。

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 }
 }
});
另请参阅

构造函数

new MeshTexture(properties)
参数
properties Object
optional

有关可能传递给构造函数的所有属性的列表,请参见属性

属性概述

可以设置、检索或侦听任何属性。请参阅使用属性主题。
显示继承属性 隐藏继承属性
名称 类型 描述
HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|ImageData

对影像或视频数据的直接引用。

更多详情
MeshTexture
String

类的名称。

更多详情
Accessor
Boolean

指示影像数据是否应解析为半透明。

更多详情
MeshTexture
String

影像资源的 URL。

更多详情
MeshTexture
String|SeparableWrapModes

指定如何处理 [0, 1] 范围之外的 uv 坐标。

更多详情
MeshTexture

属性详细信息

对影像或视频数据的直接引用。数据可以是影像元素画布元素视频元素ImageData。如果数据设置为视频元素,则该元素需要在 DOM 中可见。数据属性与 url 属性互斥,设置数据会清除 url(如果有的话)。

declaredClass Stringreadonly inherited

类的名称。声明的类名称格式化为 geoscene.folder.className

transparent Boolean

指示影像数据是否应解析为半透明。当数据属性包含画布元素或 ImageData 对象时,会自动派生默认值。如果改为提供 .png 文件的 url,则假定存在透明度。在所有其他情况下,它默认为 false

默认值:undefined
url String

影像资源的 URL。这可以是远程 url (绝对或相对) 或数据 url。视频资源只能使用 data 属性加载。url 属性与 data 属性互斥,设置 url 会清除数据(如果有的话)。

指定如何处理 [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 调用此方法的对象的深度克隆。
hasHandles(groupKey){Boolean}inherited
起始版本: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");

类型定义

SeparableWrapModes

用于水平和垂直环绕模式的可分离环绕配置。

属性
horizontal String

水平环绕模式。

可能值"clamp"|"repeat"|"mirror"

vertical String

垂直环绕模式。

可能值"clamp"|"repeat"|"mirror"

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息