0

これはちょっと醜いです。

sadface.png

基本的に、私は点粒子の束を配置するためのいくつかの複雑な数学を持っています。パーティクルがたくさんあることを考えると、すべての頂点を頂点シェーダーに配置するのが最も速いように見えました。したがって、メモリ内のジオメトリに記録されている頂点の実際の「位置」ベクトルは、頂点シェーダーが配置する場所の近くにはありません。

もちろん、これに伴う問題は深度ソートです。THREE.jsは深度ソートを実行できますが、私が知る限り、頂点シェーダーを通過したParticleSystemの深度頂点の出力に基づいてソートすることはできません。

頂点シェーダーに何らかの回避策はありますか?または、計算がはるかに遅くなるJavaScriptにすべてのポジショニングを移動する必要がありますか?レンダリング順序はシェーダー前に決定する必要がありますか?

4

2 に答える 2

0

頂点シェーダーでパーティクルの位置を計算でき、さらに距離に関してパラメーターを計算できる場合は、並べ替えを行う頂点シェーダーを作成できるはずです。そうは言っても、距離の観点からパラメーターを取得することは、困難または不可能である可能性があります。

于 2015-11-24T03:05:27.093 に答える
0

ピクセルが加算的に描画される場合、並べ替えは問題になりません:)

それ以外の場合: いいえ、特別な場合を除きます。粒子は完全にランダムですか? 彼らはそうである必要がありますか?JS でソートした場合、時々ソートするか、事前にソートしてヒープに保持できますか?

于 2012-12-10T22:13:49.687 に答える