8

サイズ、位置、色が異なる 1000 行以上を選択的に表示/非表示にする必要があります。

私の最初の試みは、それぞれに名前を付けた THREE.Geometry を作成しました。非表示/表示するには、名前とヒューリスティックに基づいて、シーンと非表示/表示を繰り返します。それは非常に遅いように見えました - 約1000行で約50Hzです。

同様のアプローチを使用してテストを行いましたが、すべての行を保持するために単一の THREE.Geometry のみを使用しました。それははるかに高速でしたが、もちろん、すべての線に 1 つのマテリアルしか適用できず、良くありません。アプリの実行中に、正しいフラグを設定して線の位置を更新することができました。

最良のアプローチは、THREE.BufferGeometry を使用することです。非常に高速で、初期設定では期待どおりに機能するテストを行いましたが、後で各線の位置/可視性と色を変更できませんでした。私はそれを説明するJSフィドルを作成しました - http://jsfiddle.net/SSnKk/ - しかし、呼び出しbuffer_geometry.dynamic = true;buffer_geometry.verticesNeedUpdate = true;も役に立たないようです。

4

1 に答える 1

15

電話する必要があります

buffer_geometry.attributes.position.needsUpdate = true;
buffer_geometry.attributes.color.needsUpdate = true;

更新されたフィドル: jsfiddle.net/hjx3rLmt/1

three.js r.76

于 2013-05-29T03:31:14.133 に答える