2013-07-24 62 views
3

我試圖通過在three.js中導入OBJ文件來在瀏覽器上可視化一個簡單的圓柱體3D模型。我開始與運行three.js所的OBJ裝載機的簡單的例子:在three.js中加載OBJ文件

https://github.com/mrdoob/three.js/blob/master/examples/webgl_loader_obj.html

是本地工作正常。

我試圖用我的OBJ文件替換路徑,但它未能加載。我仔細檢查路徑,它是正確的。

在檢查上火狐(Crtl加Shift + k)的控制檯上的錯誤,它說:Syntax Error並拋出以下錯誤:

[22:59:30.865] Error: WebGL: DrawElements: bound vertex attribute buffers do not have sufficient size for given indices from the bound element array @ http://localhost/~harmanpreet/three.js/build/three.min.js:455 

的OBJ文件是從(在BRL-CAD模型製作轉換.G到.obj轉換)。鏈接到OBJ文件:http://devplace.in/~harman/cyl1_bot_dump.obj

任何人都可以弄清楚是什麼問題?

謝謝

+0

您的.obj會爲我加載three.js v56。你正在使用哪個版本? –

+0

我正在使用修訂版本:59.現在它在我簡化上述三個OBJ裝載器的示例之後工作。我只保留代碼塊相關的obj文件加載,所以進入問題,並以某種方式它的工作。 早些時候,我試圖用我的例子替換OBJ文件的路徑,它沒有奏效。 – harman052

+0

嗨harman052,鏈接到OBJ文件已經死了。你找到了解決方案,還是可以提供更多信息。 – bummi

回答

0

你obj文件根據規格看起來是正確的,但我會建議你使用非精縮版three.js所,再看看周圍的錯誤消息的代碼。

另外你可以嘗試在obj文件中以「o」(g = group,o = object)開頭替換「g」 - 我不確定three.js如何在內部處理或如果它有所不同,但我想它不會受到傷害嘗試。

除此之外,錯誤似乎在說「我遇到了一個超出範圍的數組索引」,這意味着一個臉(.obj文件中的f)使用的索引高於定義的最高索引,但你的文件似乎並不是這樣(.obj索引從1開始,所以一切都應該沒問題)。

+0

在OBJ文件中從「g」更改爲「o」以及從html文件中的three.min.js更改爲three.js後沒有變化。 :( – harman052

+0

如果你從縮小到非縮小應該沒有變化 - 但是如果你使用非縮小版本,你可以很容易地檢查three.js在源代碼中做了些什麼(沒有魔法,它是隻是簡單的JavaScript)。在這一點上,你也可以看看你應該在你的控制檯中得到的堆棧跟蹤,以查看錯誤來自哪裏。 – griffin