2013-05-28 43 views
3

我正在尋找一種將大型多邊形網格(最多1M個三角形)加載到Three.js的最有效方法。我正在考慮使用THREE.BufferGeometry對象或使用THREE.BinaryLoader加載。我的問題是:Three.js - BinaryLoader與BufferGeometry的大網格?

  • BinaryLoader.js是否在下面創建了一個THREE.BufferGeometry對象?還是它創造了類似的效率?
  • 如果沒有,有沒有人有推薦使用哪一個?

一些額外的信息:

  • 我的模型是在服務器上的一個專有格式,所以我需要轉換/反正進行編碼。
  • 我還沒有找到一個能創建THREE.BufferGeometry的Three.js加載程序。它看起來像我需要寫我自己的。但我可以準備服務器端的數據與THREE.BufferGeometry結構對齊。
  • BinaryLoader.js爲加載數據提供了所有必要的基礎設施,但要求在服務器端以特殊方式準備數據。
+3

的CTMLoader創建BufferGeometry時的參數參數'useBuffers指示:TRUE' – gaitat

+0

@gaitat - 謝謝!這爲桌子帶來了另一種選擇。 OpenCTM仍在開發中?我沒有看到過去15個月以上沒有更新。另一種選擇可以通過[webgl-loader](https://code.google.com/p/webgl-loader/),但我不確定Three.js是否仍然支持最新。我希望我有時間去比較所有這些替代品...... – Simon

+0

我認爲OpenCTM已經完成了它應有的功能,所以不需要更新。 webgl-loader也在'UTF8Loader()'的three.js中實現,並且也支持具有相同參數的BufferGeometry。另外OpenCTM支持WebWorkers。 – gaitat

回答

2

看看glTF格式和glTFLoader for Three.js。它使用BufferGeometry。 性能要好得多;然而,它有自己的動畫實施(不使用THREE.Animation),我遇到了幾個Three.js相關的問題,如克隆模型不起作用(至少開箱即用)

glTF:https://github.com/KhronosGroup/glTF

glTFLoader:https://github.com/mrdoob/three.js/blob/54a1e789c3a84557d6b05782f5cbd9f1064f5e4f/examples/js/loaders/GLTFLoader.js

+0

鏈接到加載程序不再有效 –

+1

@JorisMans我更新了鏈接 – yash