javascript - Three.js materialLoader 不加载嵌入的纹理图像

标签 javascript json three.js textures

我正在使用 material.toJSON() 提供的方法导出一个 Three.js Material ,结果如下:

{
"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},
"uuid":"8E6F9A32-1952-4E12-A099-632637DBD732",
"type":"MeshStandardMaterial",
"color":11141120,
"roughness":1,
"metalness":0.5,
"emissive":0,
"map":"876D3309-43AD-4EEE-946F-A8AE8BA53C9E",
"transparent":true,"depthFunc":3,"depthTest":true,"depthWrite":true,

"textures":[
    {
        "uuid":"876D3309-43AD-4EEE-946F-A8AE8BA53C9E",
        "name":"",
        "mapping":300,
        "repeat":[1,1],
        "offset":[0,0],
        "center":[0,0],
        "rotation":0,
        "wrap":[1001,1001],
        "minFilter":1008,
        "magFilter":1006,
        "anisotropy":1,
        "flipY":true,
        "image":"C6B4FEDA-8E7E-490A-A1AD-866ECE36E952"}],

"images":[
{
    "uuid":"C6B4FEDA-8E7E-490A-A1AD-866ECE36E952",
    "url":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAEACAYAAADFkM5nAAAg[...]"
}]}

我尝试使用 MaterialLoader 作为示例建议

https://threejs.org/docs/#api/loaders/MaterialLoader

但在解析时我总是收到这个错误

THREE.MaterialLoader: Undefined texture 876D3309-43AD-4EEE-946F-A8AE8BA53C9E



如果我希望 MaterialLoader 使用嵌入式资源,我错了吗?
我做错了还是遗漏了什么?
如何将 json 文件中的图像加载到相关纹理中?

谢谢!

这里有一个 fiddle :
http://jsfiddle.net/akmcv7Lh/211/

最佳答案

请注意 MaterialLoader无法加载纹理。它期望通过 MaterialLoader.setTextures() 设置纹理在加载像 ObjectLoader 这样的 JSON 文件之前做:

const loader = new MaterialLoader();
loader.setTextures( textures );
所以MaterialLoader如果相应的 Material 没有纹理,则只能用作独立加载器。否则,您必须在应用程序级别准备纹理,类似于 ObjectLoader做。

关于javascript - Three.js materialLoader 不加载嵌入的纹理图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47168553/

相关文章:

javascript - 将节点从第二个移动到第一个

javascript - NodeJS Javascript for 循环更改内容

Javascript : add string to iframe with window. opener 表单弹出窗口

java - 从 Web API 返回的 JSON 可以是 double 或长精度,我如何在 Java 中最有效地处理这个问题?

java - 使用 HttpServletRequestWrapper 进行复制后缺少所需的请求正文

javascript - 两个场景三个js : CubeGeometry and PointsGeometry - only one appears

javascript - cannonjs 与 Three.js 将主体与网格关联起来

javascript - jquery函数访问本地javascript变量

php - 将 JSON 对象发布到 Symfony 2

javascript - 哪些技术可以改善 Threejs 模型的外观