Threejs 搅拌器导出器以错误的格式导出

Posted

技术标签:

【中文标题】Threejs 搅拌器导出器以错误的格式导出【英文标题】:Threejs blender exporter exports in wrong format 【发布时间】:2015-03-20 15:24:03 【问题描述】:

我正在尝试借助提供的blender exporter 将搅拌机模型导出到threejs json。在解析 json 文件时出现错误:

Uncaught TypeError: Cannot read property 'length' of undefined

json 文件如下所示(省略顶点和面):


    "textures": [],
    "metadata": 
        "version": 4.3,
        "sourceFile": "UV-World.blend",
        "type": "Object",
        "generator": "io_three"
    ,
    "images": [],
    "materials": [],
    "object": 
        "matrix": [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],
        "children": [
            "type": "Mesh",
            "name": "Kugel",
            "uuid": "5051D840-9982-4F9A-8CFF-36303B38E091",
            "position": [0.0,0.0,0.0],
            "rotation": [-1.5707964897155762,0.0,0.0],
            "scale": [1.0,0.9999999403953552,0.9999999403953552],
            "visible": true,
            "castShadow": true,
            "receiveShadow": true,
            "geometry": "DEAE2CE2-9824-4F91-BE4C-1C80BEDC566A"
        ],
        "type": "Scene",
        "uuid": "8C543616-2AB0-4D1D-B76D-549E32A0E468"
    ,
    "geometries": [
        "type": "Geometry",
        "data": 
            "name": "KugelGeometry",
            "metadata": 
                "version": 3,
                "faces": 512,
                "vertices": 482,
                "generator": "io_three"
            ,
            "vertices": [...],
            "faces": [...]
        ,
        "uuid": "DEAE2CE2-9824-4F91-BE4C-1C80BEDC566A"
    ]

这似乎不在format that threejs expects 中。如果我手动将 json 更改为以下threejs 解析并按预期显示模型。


    "scale": 1,
    "vertices": [...],
    "faces": [...]

向/从 obj 导出和导入按预期工作。

因为我找不到任何人也有这个问题,我猜这是一个使用错误。我是搅拌机的新手,所以也许我在那里做错了什么?我正在使用刚从存储库克隆的 Blender 2.73a 和threejs。

【问题讨论】:

向我们展示您的加载代码。 【参考方案1】:

我怀疑您使用的是JSONLoader。尝试改用ObjectLoader

【讨论】:

JSONLoader 是否仅适用于 format version 3,而 ObjectLoader 是第 4 版? @syntonym 是正确的!下一个版本应该会抛出一个控制台错误。 这里是使用 ObjectLoader 加载的完整代码。 var loader = new THREE.ObjectLoader(); loader.load('models.json', function(obj) console.log(obj); scene.add(obj); );【参考方案2】:

如果您想使用 JSONLoader,请取消选中 scene 选项。然后,您将拥有一个单一的网格 JSON 文件,正如您所期望的那样。

【讨论】:

它是 Blender Exporter 的旧版本。不是 Clara.io。如果您使用 Blender,只需使用最新的并取消选中所有场景项目。

以上是关于Threejs 搅拌器导出器以错误的格式导出的主要内容,如果未能解决你的问题,请参考以下文章

THREE.JS 从搅拌机中导出 JSON 模型(包括纹理)

blender导出threejs设置

surfer如何导出三维gltf文件

从搅拌机导出动画以与 Assimp 一起使用

从搅拌机导出的 USDZ 模型损坏

我可以从搅拌机的控制台导出模型吗?