私は今、異なる色の他のポリゴンを描画する必要があり、画面上に複数の異なる色のポリゴンを描画したが、この多角形は、特定の色を有するこれらのピクセル上に描画されるべきです。特定のピクセルの色にのみポリゴンを描画する方法はありますか?
私は、自分の「層」で同時に異なる色のポリゴンのそれぞれをレンダリング(=一度に1色)。彼らはお互いをカバーすることができます。最新のレイヤはすべての以前のレイヤをカバーします。画像の黒い色は「ポリゴンなし」領域です。空白ですが、それも無視してください。
だから、基本的に私はちょうどポリゴンを描画した後、ポリゴンのN番目(最初ではない)層は、次のポリゴンレイヤでマスクされている必要があり、その下に他には何も影響を与えてはなりません。必要な方法の
画像:私は、OpenGLでこれを達成するために使用することができますどのような方法
?可能であれば、このためにシェーダ以外のソリューションを好むでしょう(?)。
現在私ができる唯一の方法は、各レイヤーを別々にメモリにレンダリングし、次に自分自身でピクセルを通過させてレイヤーを「手動で」結合することですが、それは非常に遅い方法のようですここではスピードが重要です。あなたは何ができるか、そのためにステンシルバッファを使用するには
に等しい画素に描くだけにそれを伝えます2番目のコードでのみ?私も最初のコードでそれを有効にするべきではない? – Rookie
あなたは正しいかもしれません。もともと、STENCIL_TESTは、単にステンシルバッファに基づいて何かを拒否したいときだけ有効にしなければならないと思っていました。 glStencilOpコードを再読み込みすると、テストが無効になっているとステンシルバッファが変更されない可能性があります。ステンシル関数が常にパスするように設定されていることを考慮すると、最初の部分についてもステンシルテストを有効にできるはずです。 @ルーキー – Tim
それをテストし、美しく動作します!私はそれが本当に両方のケースで有効にする必要があることをテストしました。 – Rookie