three.js如何使用r58导入旧的JSON模型

时间:2013-06-25 02:45:52

标签: import three.js webgl converter

我使用较旧的模型(姜演示)构建了一个THREE.JS程序。从r44升级到r58后,我再也无法使用基于python的OBJ版本2创建的模型 - > Three.js转换器。我假设的问题是由于文件的格式化。

我没有原始的.OBJ模型,所以我正在尝试弄清楚如何将较旧的json格式升级到较新的格式,以便解析器可以读取它。我考虑将其导入THREEJS编辑器,然后再次导出,但模型具有变形目标,并且使用该技术不会保留这些目标。

Here is an example我正在尝试升级的JSON文件。

以下是我目前的进展:使用JSONLoader导入时,我得到的初始错误是:

Uncaught SyntaxError: Unexpected token /

这是由于元数据的评论,所以我将评论的元数据添加到元数据字段以匹配this converter file的第160行附近看到的格式。我还删除了所有其他非JSON代码(变量等)。我也摆脱了“边缘”字段,因为它是空的,我没有在.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,...]
} 

我的手动转换有什么错误?是否可以使用来自不同转换器版本的相同数据?有一个更好的方法吗?

1 个答案:

答案 0 :(得分:1)

您应该能够使用editor将它们转换为编辑器然后导出它来转换它们。可悲的是,出口商尚未完成(缺少紫外线)......