Quel est le but du tampon de stencil? Plus précisément, qu'est-ce qu'un pochoir en infographie?

41

J'ai beaucoup lu le mot au pochoir et je n'ai aucune idée de son véritable objectif en infographie.

En voyant la photo en noir et blanc sur wikipedia, j'ai toujours des problèmes avec elle.

Pourquoi utilisons-nous un pochoir ou un tampon de pochoir et quelle est la différence avec un tampon Z? Pourquoi utiliser ce mot qui semble avoir une signification en graphisme?

jokoon
la source
Bonne question, tout ce que je sais, c'est qu'il est utilisé pour le rendu des ombres ... Mais je serais intéressé d'entendre une explication complète à ce sujet!
Ricket

Réponses:

40

Dans son incarnation originale, un tampon de gabarit était un tampon de trame de un bit par pixel (c'est-à-dire noir ou blanc, mais pas de gris). Vous pouvez rendre ce que vous voulez comme n'importe quel autre framebuffer. Puis, plus tard, vous pourrez utiliser le contenu de ce tampon pour "masquer" ou masquer lors de l’appel dans votre tampon habituel.

Un exemple: disons que vous faites un jeu de conduite. Vous voulez avoir un petit rétroviseur à l'écran qui vous montre ce qu'il y a derrière la voiture. Vous aurez besoin de rendre une vue pointant derrière la voiture, mais vous voulez seulement la rendre dans le petit rectangle arrondi du rétroviseur. La solution typique est:

  1. Rendez le rectangle arrondi dans le tampon de gabarit.
  2. Activer le pochoir.
  3. Rendez la vue pointant vers l’arrière sur le tampon normal.

Le gabarit le masquera pour que vous ne dessiniez que la forme du miroir.

Maintenant que les pipelines de rendu sont beaucoup plus flexibles et programmables, les tampons de gabarit ne sont utilisés que comme un framebuffer générique 1 bit que vous pouvez utiliser à votre guise. Les ombres sont un cas d'utilisation courant.

munificent
la source
10
En d'autres termes, il a fondamentalement la même fonction qu'un pochoir réel, masquant des parties lors de l'application d'encre.
Kaj
4
De nos jours, presque tous les périphériques prennent en charge un tampon de gabarit de 8 bits.
Chris Howe
Je ne comprends pas vraiment votre exemple, c'est comme s'il y avait un deuxième frustrum? Est-ce que ça rasterise une autre partie de la scène? Pouvez-vous donner un exemple avec des ombres?
jokoon
C'est juste un deuxième tampon d'image. Vous pouvez toujours changer le frustum avant de le rendre (c'est ce que font, à mon avis, les systèmes d'ombre), mais cela ne fait pas partie du concept de base.
magnifique
9

Outre l'utilisation fonctionnelle des tampons de gabarit déjà abordée, les tampons de gabarit peuvent également être utilisés pour l'optimisation.

En raison de la position du test de gabarit dans le pipeline graphique (c'est-à-dire avant l' ombrage en pixels), le test de gabarit peut être utilisé pour supprimer les pixels qui effectuent un ombrage important lorsqu'ils ne sont pas nécessaires. Cela peut souvent être fait avec une granularité plus grossière qu'un simple pixel, par exemple. une mosaïque de pixels, de sorte que le travail peut aussi souvent être éliminé au cours des étapes de rastérisation grossière.

jpaver
la source
4

C'est juste un tampon qui contrôle quels pixels peuvent être modifiés lorsque les polygones sont rendus. Pour chaque pixel, il existe une valeur de gabarit correspondante, et les pixels peuvent être conditionnellement modifiés / ignorés en fonction de ces valeurs

Au plus simple, il peut être utilisé comme un gabarit physique - un masque qui laisse passer certains pixels et empêche la modification d'autres pixels.

Son comportement est très similaire à celui d'un z-buffer - comme le test de profondeur, le test de gabarit est un test vrai / faux, et il existe des paramètres similaires pour contrôler le test de gabarit (réussi si supérieur / inférieur / égal à). Cependant, au lieu d’écrire une profondeur, des valeurs prédéfinies y sont écrites ou sont incrémentées / décrémentées lors du tracé des pixels, comme dans les algorithmes d’ombre de gabarit.

bluescrn
la source