我的素材有envMap
。我致电Material.toJSON()
将其保存到localStorage
。
报告错误,说
Texture.js:124 Uncaught TypeError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The provided value is not of type '(HTMLImageElement or HTMLVideoElement or HTMLCanvasElement or ImageBitmap)'.
我调试了它,发现图像是一个不正确类型的数组。
以下是我的问题,如何正确地使用envMap
属性保存我的资料?
答案 0 :(得分:0)
[更新]:我已将此问题发布为您可以参考here的问题。
我也遇到了这个问题。我通过修改THREE.js源来修复它,如下所示。
在toJSON内部的getDataURL函数中,有一个部分将meta.images [img]路径分配给envMap的数据URL。
这是我的修复[从第22134行开始,第79行]:
if ( meta.images[ image.uuid ] === undefined ) {
/* ADD THIS PART */
if (image instanceof Array && image.length > 1) {
meta.images[ image.uuid ] = {
uuid: image.uuid,
url: image.map((val) => { getDataURL(val) })
};
} else {
meta.images[ image.uuid ] = {
uuid: image.uuid,
url: getDataURL( image )
};
}
}