2013-05-29 33 views
7

1000以上の異なるサイズ、位置、色の線を選択/非表示にする必要があります。THREE.BufferGeometryオブジェクトの頂点を変更する

私の最初の試みは、各々の名前をつけたTHREE.Geometryを作った。隠す/表示するには、名前と私のヒューリスティックに基づいて、シーン全体を反復し、それぞれを非表示にします。それは非常に遅いようでした〜約1000Hzのために約50Hz。

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

ベスト・アプローチは、THREE.BufferGeometryを使用することです。私は非常に速く、最初のセットアップのために期待どおりに機能したテストを行いましたが、後で各ラインの位置/可視性と色を変更することができませんでした。私はそれを示しているJSのフィドルを作った - http://jsfiddle.net/SSnKk/ - しかし、buffer_geometry.dynamic = true;buffer_geometry.verticesNeedUpdate = true;は助けにならなかった。

答えて

11

あなたは

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

更新フィドル呼び出す必要があります:jsfiddle.net/hjx3rLmt/1

three.js r.76

+0

完全に働いた - 西ラングレーあなたに感謝を。 – speedwell

+0

それに続いて、私は線が原点から離れ始めるようにしたいと思います。私が開始位置を変更すると、私は何を期待しているのかわかりません。バッファジオメトリを任意の位置にある線のセットで使用することは可能ですか?ここの例:http://jsfiddle.net/9nVqU/ – speedwell

+0

あなたの新しい質問で新しい投稿をしてください。 – WestLangley

関連する問題