OpenGL レンダリング パイプラインについて質問があります。
最近、GLSL の Geometry Shader に関する理論を読んでいます。新しいジオメトリを放出し、新しい頂点に色を割り当てる方法の基本を理解していると思います。ただし、これらの新しい頂点の 1 つが Vertex シェーダーからの頂点とまったく同じ位置にある場合、フラグメントがどのような色になるかはわかりません。
次の例を考えてみましょう。私が理解している限りでは、Vertex シェーダーで 1 つの頂点を処理できます。何らかの変換を行い、その位置を glPosition に保存します。さらに、たとえば glFrontColor に格納することにより、その頂点に色を割り当てることができます。例として、赤色を指定します。すべてのチャネルが 32 ビットの場合、0xFFFFFFFF'00000000'00000000'00000000 になりますね。次に、ジオメトリ シェーダーが関係します。ジオメトリ シェーダーがいくつかの追加の頂点を放出するようにします。それらの少なくとも 1 つは、Vertex シェーダーから入ってくる元の頂点とまったく同じ位置にあります。ただし、緑などの別の色が割り当てられます。それは 0x00000000'FFFFFFFF'00000000'00000000 ですよね?遅かれ早かれ、すべての頂点が処理された後、ラスタライズが行われます。私が理解しているように、両方の頂点がラスタライズされるため、まったく同じフラグメントになります。では、行きましょう。その特定のフラグメントは何色になりますか? ある種の自動ブレンディングがあり、フラグメントは黄色になりますか? それとも赤というか緑ですか?
この質問はばかげているかもしれません。しかし、私はそれについてはっきりしていません。誰かが私のためにそれを明確にしていただければ幸いです.
ブレンディングがない場合 (私はそう思います)、どうすればブレンディング効果を作成できますか?