2016-01-28 4 views
9

私がusing buffer geometriesと理解したように、はGPUにすべてのデータを渡すコストを減らすので、パフォーマンスが向上し、メモリ使用量が減少しますThree.js - THREE.BufferGeometryの使用についての質問

そして、私はここにfrom @WestLangley his postを理解されるように:それは、計算上、より効率的であるよう

THREE.BufferGeometryはゆっくりTHREE.Geometryを交換しています。

私は現在three.jsを使用しています - R72を。
ジオメトリを描画してメッシュを作成してシーンに追加すると、ジオメトリ内に2つのプロパティ__directGeometry_bufferGeometryがあることがわかります。 THREE.BoxGeometryでここ

ここ

enter image description here

THREE.Geometry中:THREE.ShapeGeometryでここ

enter image description here

enter image description here

私の質問:

  1. THREE.DirectGeometryであり、それは何をするのでしょうか? (私はこれについてのドキュメントを見つけることができないようです)
  2. _bufferGeometryに保存されているTHREE.BufferGeometryはすでに自動的に使用されていますか?そうでない場合は、パフォーマンスを向上させるためにジオメトリの代わりに単に使用できますか?
  3. 変換方法があります。THREE.BufferGeometrytoGeometryTHREE.GeometrytoBufferGeometryです。このメソッドを使用してすべての通常のジオメトリをバッファジオメトリに変換すると、最初からTHREE.BufferGeometryとして描画するのと同じパフォーマンスが向上しますか?
  4. いつ、どのようにすればTHREE.BufferGeometryを使用すればいいですか?
  5. three.jsはいつTHREE.Geometryを支持してTHREE.BufferGeometryをサポートしますか?

注:私は、どのようにバッファジオメトリを使用するか、それがTHREE.Geometryを交換しようとしているときに詳細な情報を見つけることができませんでした。しかし、誰かが良い出典やリファレンスを持っている場合は、コメントを残してください。

答えて

7
  1. __directGeometryTHREE.GeometryTHREE.BufferGeometryとの間で移行するために使用される内部データ構造です。それを台無しにしないでください。
  2. THREE.BufferGeometry.toGeometry()およびTHREE.Geometry.toBufferGeometry()が便利な方法である。最初のモデルは、モデルがBufferGeometryとして読み込まれ、Geometryの操作がより快適になると便利です。パフォーマンスに関する回答が必要な場合は、テストを行う必要があります。バッファジオメトリは確実に高速にロードされます。
  3. BufferGeometryの使用を示す多くの例があります。 「索引付け」と「索引付けされていない」BufferGeometryの違いを理解することが賢明でしょう。 BufferGeometry属性が定義されたindexを定義すると、頂点の共有が可能になります。非インデックス型BufferGeometryは、「トライアングルスープ」と呼ばれています。
  4. THREE.Geometryは近いうちに残ります。あなたの答えのための

+0

r.73 three.js感謝。 *このメソッドを使用してすべての通常のジオメトリをバッファジオメトリに変換すると、開始時にTHREE.BufferGeometryから描画するのと同じパフォーマンスが向上しますか?*私はまだ存在しているためバッファのジオメトリを最大限のパフォーマンスを得るためにバッファジオメトリとして再描画する必要があるかどうかはわかりません... – Wilt

+0

もう1つ...インデックス化されていないバッファのジオメトリ間にパフォーマンスの違いはありますか? – Wilt

+2

(1)#3で述べたように。上記のように、パフォーマンスに関する回答が必要な場合は、特定のアプリケーションのテストを行う必要があります。 (2)レンダラーは通常のジオメトリをバッファージオメトリに変換しますので、手動で変換する必要はありません。しかし、それは良い学習経験かもしれません。 (3)索引付けされた索引付けされていない「BufferGeometry」は、パフォーマンスに大きな違いがあるかどうかは関係ありません。ジオメトリに依存します。 – WestLangley