我使用旧模型(姜演示)构建了一个 THREE.JS 程序。从 r44 升级到 r58 后,我不再能够使用使用基于 python 的 OBJ -> Three.js 转换器的版本 2 创建的模型。我假设这个问题是由于文件的格式。
我没有原始的 .OBJ 模型,所以我试图弄清楚如何将旧的 json 格式升级到新的格式,以便解析器可以读取它。我考虑将其导入 THREEJS 编辑器,然后再次导出,但模型具有变形目标,并且使用该技术没有保留这些目标。
这是我尝试升级的 JSON 文件的示例。
以下是我迄今为止的进展:使用 JSONLoader 导入时,我得到的初始错误是:
Uncaught SyntaxError: Unexpected token /
这是由于元数据的注释,所以我将注释的元数据添加到元数据字段以匹配在此转换器文件的第 160 行附近看到的格式。我还删除了所有其他非 JSON 代码(变量等)。我也去掉了“edges”字段,因为它是空的,而且我没有在 .py 代码中找到 taht 字符串。
json文件加载成功,但是我在使用的时候遇到如下错误:
Uncaught TypeError: Cannot read property 'map' of undefined
Uncaught TypeError: Cannot read property 'attributes' of undefined
“属性”错误无限重复。
json 文件如下所示:
{
"metadata": {
"formatVersion" : 2,
"generatedBy" : "OBJConverter",
"vertices" : 168,
"faces" : 144,
"normals" : 576,
"colors" : 0,
"uvs" : 175,
"materials" : 1
},
"scale" : 1000.000000,
"materials": [ {
"DbgColor" : 15658734,
"DbgIndex" : 0,
"DbgName" : "phong1SG",
"colorAmbient" : [0.0, 0.0, 0.0],
"colorDiffuse" : [0.8, 0.8, 0.8],
"colorSpecular" : [1.0, 1.0, 1.0],
"illumination" : 4,
"mapDiffuse" : "ginger_color.jpg",
"opticalDensity" : 1.0,
"specularCoef" : 98.0
}],
"vertices": [1900,6776,...],
"morphTargets": [],
"morphColors": [],
"normals": [-0.024569,-0.94821,...],
"colors": [],
"uvs": [[0.37164,0.65357,...]],
"faces": [43,1,...]
}
我的手动转换有什么错误?甚至可以使用来自不同转换器版本的相同数据吗?有一个更好的方法吗?