En infographie, un fragment est constitué des données nécessaires pour générer une primitive de dessin représentant un pixel unique dans le tampon de trame.
Ces données peuvent inclure, sans toutefois s'y limiter:
- position du raster
- profondeur
- attributs interpolés (couleur, coordonnées de texture, etc.)
- pochoir
- alpha
- identifiant de fenêtre
Lorsqu'une scène est dessinée, les primitives de dessin sont tramées en fragments qui sont texturés et combinés avec le tampon d'images existant. La manière dont un fragment est combiné aux données déjà présentes dans le tampon d'images dépend de divers paramètres. Dans un cas typique, un fragment peut être ignoré s'il est plus éloigné que le pixel qui se trouve déjà à cet emplacement (en fonction de la mémoire tampon de profondeur). Si elle est plus proche que le pixel existant, elle peut remplacer ce qui existe déjà ou, si la fusion alpha est utilisée, la couleur du pixel peut être remplacée par un mélange de la couleur du fragment et de la couleur existante du pixel, comme dans le cas de dessiner un objet translucide.
En général, un fragment peut être considéré comme les données nécessaires pour ombrer le pixel, plus les données nécessaires pour vérifier si le fragment survit et devient un pixel (profondeur, alpha, pochoir, ciseaux, identifiant de fenêtre, etc.).
De wikipedia
De la même manière qu'un vertex shader agit sur des sommets, un fragment (ou pixel) shader agira uniquement sur des pixels.
la source
La seule chose précise à dire est de définir les entrées et les sorties du fragment shader.
Comme cela a été fait / est trop large, je vais me concentrer sur le côté visuel intuitif de celui-ci.
Un fragment est la sortie du raster
Le wiki OpenGL dit:
Cela a du sens puisque le fragment shader vient après le rasterizer qui produit son entrée.
Et voici la représentation visuelle de la sortie du rasterizer:
Source de l'image .
L'entrée du rasterizer est un triangle 3D et un point de vue, et la sortie est un ensemble de pixels pouvant apparaître à l'écran (s'ils ne sont pas bloqués par d'autres).
Chacun de ces petits carrés (qui sont codés comme un simple plixel) est un morceau du triangle, et fragment est juste un autre nom pour le morceau.
la source