0

描画する前に並べ替えたい透明なプリミティブがたくさんありますが、並べ替えキーであるZ座標を取得するために、ハードウェアの頂点シェーダーによって実行されるすべての変換をソフトウェアで実行しました。

シェーダーからZ座標を取得し、それを使用して次のフレームのプリミティブを並べ替えることで、プロセスを最適化できると思いました。プリミティブの順序はフレーム間で大幅に変わることはないと予想されるため、十分に公平な順序を提供する必要があります。だから、頂点シェーダーからZ座標のバッチを取り戻す方法を知りたいですか?出来ますか?

4

2 に答える 2

2

Transform Feedbackを使用して、Vertex Shader出力から後で読み取ることができるバッファにデータを取得できますが、これではあまり得られないと思います。どのソリューションが最適かを(実験的に)プロファイルする必要があります。

于 2011-05-30T16:14:16.723 に答える
1

各プリミティブを個別に見るのではなく、接続されたメッシュのバウンディングボリュームに基づいて並べ替える必要があります。この種の並べ替えは、KdやBSPツリーのような空間分割構造でジオメトリを整理する場合、多かれ少なかれ無料で提供されます。次に、並べ替えの問題は、正しい方向へのツリーのトラバーサルを実装することになります。基本的には、最初のトラバーサルの深さまで煮詰められ、枝はニア←→ファーの方法でトラバースされます。

于 2011-05-30T16:22:14.413 に答える