Tengo algo de experiencia en la programación de geometría y cálculo de sombreadores, pero nunca me aventuré a jugar realmente con los sombreadores de fragmentos. Actualmente, estoy tratando de entender mejor cómo funcionan y su potencial. Una de las cosas que he leído en varios lugares es que un fragmento (es decir, un píxel de la pantalla) no puede extenderse más allá de sí mismo dentro del sombreador de fragmentos. Lo que significa que un fragmento dado que se está iterando solo puede afectarse a sí mismo.
Por lo tanto, y por el bien del aprendizaje, me gustaría saber si es posible lo siguiente (y si es así, cómo, en líneas generales, se puede lograr). Supongamos que tenemos, por simplicidad, una malla de puntos que consta de solo dos vértices (ubicados en el espacio 3D World). ¿Podemos programar un sombreador de tal manera que cada uno de estos dos vértices se pinten en la pantalla en su posición exacta de WorldToViewport, pero también que un círculo alrededor de cada uno de ellos con radio = R también se pinte en los píxeles circundantes incluso si se extienden más allá de la malla original a la que está unido el sombreador? Como en la figura a continuación (donde el cuadrado rojo en el centro de los círculos representa los vértices pintados en la pantalla):
Si eso es posible, ¿se puede programar un sombreador de tal manera que estos círculos que se extienden más allá de los vértices influyan en el color (RGBA) entre sí? Como en la figura a continuación:
Como dije, si estas son cosas posibles, me encantaría escuchar un poco de cómo lograrlo, ya sea en términos conceptuales o prácticos. ¿Se hace en el sombreador de fragmentos o debe calcularse antes en los sombreadores de vértice o geometría? ¿Cómo calcular y pasar "fragmentos adicionales" que se extienden más allá de los fragmentos ocupados por el cuerpo de malla?