Qu'est-ce qu'un tampon de stencil?
En programmation graphique, un tampon de gabarit est une zone de mémoire qui peut être utilisée et utilisée en relation avec d’autres tampons graphiques pour obtenir différents effets ou pour masquer des zones d’une scène afin qu’elles ne soient ni traitées ni restituées. Un tampon de gabarit est un tampon par pixel similaire à une image en noir et blanc, dans lequel chaque emplacement du tampon peut contenir une valeur qui est le plus souvent d'un octet de long au plus, mais peut ne pas dépasser un bit. Le tampon a été conçu à l'origine pour agir comme un masque vrai ou faux, un peu comme un gabarit réel, afin de masquer ou d'ignorer les zones d'une scène en définissant les valeurs des différentes régions du tampon de gabarit sur une valeur autre que zéro. Le tampon a plusieurs utilisations qui vont au-delà du simple masquage, notamment dessiner un volume fantôme, mettre en place des halos autour des objets ou localiser des zones où les objets se chevauchent. Dans de nombreux cas, la mémoire tampon est conservée dans la mémoire graphique d'une carte graphique afin de pouvoir y accéder rapidement pendant le rendu.
Le concept de tampon de gabarit était à l'origine un moyen de créer un masque bidimensionnel (2D) pouvant être appliqué à une scène tridimensionnelle (3D) lorsque les sommets se déplaçaient dans le pipeline graphique. Si l'emplacement du sommet 3D, une fois pixellisé, est lié à une zone du tampon de gabarit qui n'était pas définie sur zéro, vous pouvez alors ignorer ce sommet et ignorer le reste de son traitement par pipeline. Cela permettait aux programmeurs de ne restituer que de petites parties d'une scène ou de transformer une image en une fenêtre de forme irrégulière, telle qu'un reflet dans un petit miroir dans une scène plus grande, où la forme du miroir est dessinée comme un gabarit dans le fond. tampon, puis la réflexion est attirée à travers cette forme.
Les problèmes de mémoire ont conduit à la forme originale d'un tampon de gabarit étant une grille de valeurs à un bit dans laquelle chaque pixel du tampon ne peut être que vrai ou faux. À mesure que les cartes graphiques se développaient, la plupart des mémoires tampons devenaient capables de contenir une valeur d'octet complet à chaque emplacement de pixel, ce qui permettait aux programmeurs d'avoir des valeurs plus complexes dans un emplacement. Cela peut permettre au tampon d'être utilisé pour détecter des zones de chevauchement d'objets, ce qui peut être fait en incrémentant la valeur du tampon à un emplacement si un objet occupe ce pixel à l'écran lors de la pixellisation. Après cette opération, la valeur de chaque emplacement de pixel dans la mémoire tampon sera égale au nombre d'objets qui traversent ce pixel sur un écran.
L'une des utilisations les plus courantes d'un tampon de gabarit est la création d'ombres de volume. Cela peut être fait en rendant d'abord une scène avec un éclairage très faible afin que tout semble être ombragé. Ensuite, des calculs sont effectués pour déterminer l'emplacement de toutes les surfaces polygonales de la scène éclairées par une source de lumière, et ces formes sont transférées dans la mémoire tampon de gabarit. La scène est à nouveau rendue comme si chaque objet était entièrement éclairé et fusionnée à travers les formes de pochoir sur la scène ombrée, créant ainsi une image qui semble contenir des objets ombrés.