1

私のコードは何千もの粒子を管理しています。これらのパーティクルは異なるテクスチャを持つことができ、これらのテクスチャは時間の経過とともに変化する可能性があります。だから私は今のところパーティクルシステムを使っていません。シーンにメッシュを1つずつ追加するだけです。

さて、最適化の時が来ました。アプリケーションは古いコンピューターでゆっくりと実行されます。パフォーマンスツールは、CPUを最大限に活用するタスクがThree.jsレンダリングメソッドであることを示しています。パーティクルシステムに切り替えるためにコードの構造を変更する必要があるのではないかと思います。

違いは壮観ですか? 独立したメッシュ管理と比較して、パーティクルシステムはどのような最適化を行いますか?

ありがとう

4

1 に答える 1

0

追加の資料がないと言うのは難しいですが、Three.jsコードを見ると、そこにあるパーティクルがどのように管理されているかがわかります。

パーティクルごとにテクスチャを切り替える場合、それは実際のパフォーマンスキラーになる可能性があります。パーティクルをテクスチャで並べ替えて、パーティクルごとに1回ではなく、パーティクルのグループごとに1回だけ切り替えるようにしてください。

パーティクルを深度ソートしている場合、これは実用的ではないかもしれませんが...あなたが何をしようとしているのかわかりません。これが当てはまり、少数の異なるテクスチャのみを使用している場合は、サンプラーを交換するのではなく、それらをすべて「アトラス」にまとめてから、UVマップオフセットを各パーティクルに渡すことを検討してください。これも安くなります。

于 2012-12-13T02:22:30.037 に答える