J'ai une certaine expérience en programmation de géométrie et de calcul de shaders - mais je ne me suis jamais aventuré en jouant vraiment avec les shaders de fragments. Actuellement, j'essaie de mieux comprendre comment ils fonctionnent et leur potentiel. L'une des choses que j'ai lues à plusieurs endroits est qu'un fragment (c'est-à-dire un pixel d'écran) ne peut pas s'étendre au-delà de lui-même dans le fragment shader. Ce qui signifie qu'un fragment donné en cours d'itération ne peut qu'affecter lui-même.
Par conséquent, et dans un souci d'apprentissage, je voudrais savoir si ce qui suit est possible (et si c'est le cas, comment, en termes généraux, peut-il être réalisé). Supposons que nous ayons, par souci de simplicité, un maillage ponctuel composé de seulement deux sommets (situés dans l'espace 3D World). Pouvons-nous programmer un shader de telle sorte que chacun de ces deux sommets soit peint à l'écran à leur position exacte WorldToViewport, mais aussi qu'un cercle autour de chacun d'eux de rayon = R soit également peint dans les pixels environnants même s'ils s'étendent au-delà du maillage d'origine auquel le shader est attaché? Comme dans la figure ci-dessous (où le carré rouge au centre des cercles représente les sommets peints à l'écran):
Si cela est possible, un shader peut-il également être programmé de telle manière que ces cercles qui s'étendent au-delà des sommets influencent la couleur (RGBA) les uns des autres? Comme dans la figure ci-dessous:
Comme je l'ai dit, si ce sont des choses possibles, j'aimerais savoir un peu comment y parvenir - en termes conceptuels ou pratiques. Est-ce fait dans le shader de fragment, ou doit-il être calculé avant au shaders de vertex ou de géométrie? Comment calculer et passer des "fragments supplémentaires" qui s'étendent au-delà des fragments occupés par le corps maillé?