Ich habe einige Erfahrung mit dem Programmieren von Geometrie und dem Berechnen von Shadern - habe mich aber nie daran gewöhnt, wirklich mit den Fragment-Shadern zu spielen. Derzeit versuche ich besser zu verstehen, wie sie funktionieren und welches Potenzial sie haben. Eines der Dinge, die ich an mehreren Stellen gelesen habe, ist, dass ein Fragment (dh ein Bildschirmpixel) innerhalb des Fragment-Shaders nicht über sich hinausgehen kann. Das heißt, ein bestimmtes Fragment, das iteriert wird, kann sich nur auf sich selbst auswirken.
Aus diesem Grund und zum Zwecke des Lernens möchte ich wissen, ob Folgendes möglich ist (und wenn ja, wie dies im Allgemeinen erreicht werden kann). Nehmen wir an, wir haben der Einfachheit halber ein Punktnetz, das nur aus zwei Eckpunkten besteht (im 3D-Weltraum). Können wir einen Shader so programmieren, dass jeder dieser beiden Scheitelpunkte an der exakten WorldToViewport-Position auf dem Bildschirm gezeichnet wird, aber auch, dass ein Kreis um jeden von ihnen mit dem Radius = R auch in den umgebenden Pixeln gezeichnet wird, selbst wenn sie sich erstrecken jenseits des ursprünglichen Netzes, an dem der Shader befestigt ist? Wie in der folgenden Abbildung (wobei das rote Quadrat in der Mitte der Kreise die auf dem Bildschirm gemalten Scheitelpunkte darstellt):
Wenn dies möglich ist, kann ein Shader auch so programmiert werden, dass diese Kreise, die sich über die Eckpunkte hinaus erstrecken, die Farbe (RGBA) voneinander beeinflussen? Wie in der folgenden Abbildung:
Wie gesagt, wenn dies mögliche Dinge sind, würde ich gerne ein bisschen hören, wie man so etwas erreicht - entweder in konzeptioneller oder praktischer Hinsicht. Wird es im Fragment-Shader ausgeführt oder muss es zuvor am Vertex- oder Geometrie-Shader berechnet werden? Wie kann man "zusätzliche Fragmente" berechnen und übergeben, die über die vom Netzkörper besetzten Fragmente hinausgehen?