Ho una certa esperienza nella programmazione della geometria e nel calcolo degli shader, ma non mi sono mai avventurato a giocare davvero con gli shader di frammenti. Attualmente, sto cercando di capire meglio come funzionano e il loro potenziale. Una delle cose che ho letto in più punti è che un frammento (cioè un pixel dello schermo) non può estendersi oltre se stesso all'interno dello shader di frammenti. Il che significa che un dato frammento che viene ripetuto può influenzare solo se stesso.
Pertanto, e per motivi di apprendimento, vorrei sapere se è possibile quanto segue (e se lo è, come, in linea generale, può essere raggiunto). Supponiamo di avere, per semplicità, una maglia a punti costituita da solo due vertici (situati nello spazio del Mondo 3D). Possiamo programmare uno shader in modo tale che ciascuno di questi due vertici venga dipinto sullo schermo nella posizione esatta di WorldToViewport, ma anche che un cerchio attorno a ciascuno di essi di raggio = R sia anche dipinto nei pixel circostanti anche se si estendono oltre la mesh originale a cui è collegato lo shader? Come nella figura in basso (dove il quadrato rosso al centro dei cerchi rappresenta i vertici dipinti sullo schermo):
Se ciò è possibile, uno shader può anche essere programmato in modo tale che questi cerchi che si estendono oltre i vertici influenzano il colore (RGBA) l'uno dell'altro? Come nella figura seguente:
Come ho detto, se queste sono cose possibili, mi piacerebbe sapere un po 'di come realizzare una cosa del genere - in termini concettuali o pratici. Viene eseguito nello shader di frammento o deve essere calcolato prima nel vertice o nello shader di geometria? Come calcolare e passare "frammenti aggiuntivi" che si estendono oltre quei frammenti occupati dal corpo della mesh?