2014-12-03 149 views
1

我試圖從3D模型庫導入模型,但某些模型無法加載(ColladaLoader.js中的錯誤(第2808行) 未捕獲的TypeError:Can not讀取null屬性的'輸入')。我遇到了來自3D倉庫的許多不同模型的這一錯誤。Three.js ColladaLoader未能加載模型:某些元素似乎沒有頂點

我準備了一個小提琴(elcsiga/rep1z1xt/4),它通過ajax(CORS違規)從不同的域加載模型,但它在Chrome中工作。

工作的完整示例(加載失敗模型):從three.js所倉庫 與怪物模型http://projecthost.hu/webview/jsfiddle/metro.html

完全相同的代碼(它的工作原理): http://projecthost.hu/webview/jsfiddle/monster.html

的COLLADA模型可以在這裏找到:projecthost.hu/webview/jsfiddle/metro.dae 首先,我嘗試將它作爲.kmz文件下載,然後直接解壓並使用.dae文件。此外,我試圖下載.skp文件,在Sketchup中打開它,並將其導出爲.dae格式,但在ColladaLoader.js中得到相同的錯誤。

這些模型是否包含不受支持的幾何體,還是Collada加載程序中的錯誤?

謝謝。

+0

您似乎已經發現問題:'vertices = null'。如果您能夠通過調試器確定它是模型問題還是加載器問題,那將非常有用。使用three.js的非縮小版進行調試。 – WestLangley 2014-12-03 16:35:45

回答

0

找到

var vertexData = sources[ this.vertices.input['POSITION'].source ].data; 
在ColladaLoader.js

,與

var vertexData = []; 
if (this.vertices && this.vertices.input['POSITION'].source) { 
    vertexData = sources[ this.vertices.input['POSITION'].source ].data; 
} 

取代它,這可以通過避免空點解決我的問題。它可能會丟失dae文件的一些信息,但它不會損害ColladaLoader.js的功能。

相關問題