ジオメトリとコンピューティングシェーダーのプログラミングの経験はありますが、フラグメントシェーダーを実際に使ってみたことはありません。現在、私はそれらがどのように機能するか、そしてそれらの可能性をよりよく理解しようとしています。私が複数の場所で読んだことの1つは、フラグメント(スクリーンピクセル)がフラグメントシェーダー内でそれ自体を超えて拡張できないことです。つまり、反復される特定のフラグメントは、それ自体にのみ影響を与えることができます。
したがって、私は学習のために、次のことが可能かどうか(可能であれば、一般的にはどのようにして達成できるか)を知りたいと思います。簡単にするために、2つの頂点のみからなるポイントメッシュ(3Dワールド空間に配置)があるとします。これらの2つの頂点のそれぞれが画面上のWorldToViewportの正確な位置に描画されるようにシェーダーをプログラムできますか。また、radius = Rの各頂点を囲む円も、それらが延長されている場合でも周囲のピクセルに描画されます。シェーダーがアタッチされている元のメッシュを超えていますか?下の図のように(円の中心にある赤い四角形が画面に描かれた頂点を表します):
それが可能であれば、頂点を超えて延びるこれらの円が互いの色(RGBA)に影響を与えるように、シェーダーをプログラムすることもできますか?下の図のように:
私が言ったように、これらが可能であるなら、私はそのようなことを達成する方法の少しを概念的または実際的な面で聞きたいです。フラグメントシェーダーで行われますか、それとも頂点シェーダーまたはジオメトリシェーダーで前に計算する必要がありますか?メッシュボディが占めるフラグメントを超えて「追加のフラグメント」を計算して渡す方法は?