2013-06-25 20 views
1

我使用舊模型(姜演示)構建了THREE.JS程序。在從r44升級到r58之後,我不再能夠使用使用基於python的OBJ - > Three.js轉換器的版本2創建的模型。我想這個問題是由於文件的格式造成的。three.js如何使用r58導入舊的JSON模型

我沒有原始的.OBJ模型,所以我想弄清楚如何將較舊的json格式升級到較新的json格式,以便解析器可以讀取它。我考慮將其導入到THREEJS編輯器中,然後再次導出,但模型具有變形目標,並且這些模型未使用該技術保存。

Here is an example我試圖升級JSON文件。

以下是我的進步迄今:當使用JSONLoader進口,最初的錯誤,我得到的是:

Uncaught SyntaxError: Unexpected token/

這是由於元數據的評論,所以我加了註釋的元數據元數據字段以匹配在this converter file的第160行附近看到的格式。我還刪除了所有其他非JSON代碼(變量等)。我也擺脫了「邊緣」字段,因爲它是空的,我沒有在.py代碼中找到字符串。

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

您應該可以使用editor將它們轉換爲編輯器,然後導出它們。可悲的是出口商還沒有完成(缺少紫外線)...

+0

我想知道同樣的事情。有沒有實用的方法來添加UVs? – electronixG

+0

變形目標怎麼樣,他們可以轉換?這是模型的關鍵部分(在我的例子中沒有描述)。當我嘗試時,他們沒有轉移到新模型。 – Blake

+0

啊啊......變形目標也不支持:/ – mrdoob

相關問題