これについていろいろと調べて、この非常に役立つ記事を読んでください。このスクリーンショットは私の問題を完全に示しています:
2 つのオブジェクトがあります。赤いオブジェクトは 2 つのクワッドで構成され、1 つは z-index が -1 で、もう 1 つは z-index が 1 です。両方のクワッドはColor.Red * 0.5f
. 最初に描画されます。もう一方のオブジェクトは、z-index 0 のプレーヤーです。2 番目に描画されます
プレーヤーをクワッドの間に移動させたいので、 に設定DepthStencilState
しまし DepthStencilState.Default;
たが、これにより次のイメージが得られます。プレイヤーの前にオブジェクトがあるため、プレイヤーのピクセルは無視されます。
このクラスに基づいて、すべてのプリミティブを 1 つの大きな DrawUserPrimitive にまとめます。この問題の最善の解決策は何ですか? z-index に基づいて三角形をソートする必要がありますか (そして、どのように行うのですか?それは高価ですか?) または別の解決策がありますか?