¿Qué es un búfer de plantilla?
En la programación de gráficos por computadora, un búfer de stencil es un área de memoria que se puede utilizar y utilizar en relación con otros búferes de gráficos para lograr diferentes efectos o para enmascarar áreas de una escena para que no se procesen ni se procesen. Un búfer de plantilla es un búfer por píxel similar a una imagen en blanco y negro, en el que cada ubicación en el búfer puede contener un valor que suele ser de 1 byte como máximo, pero puede ser tan pequeño como 1 bit. Originalmente, el búfer fue diseñado para actuar como una máscara verdadera o falsa, muy similar a una plantilla del mundo real, por lo que las áreas de una escena podrían oscurecerse o ignorarse al establecer los valores de diferentes regiones del búfer de la plantilla en un valor distinto de cero. Hay varios usos para el búfer más allá del simple enmascaramiento, incluido el dibujo de un volumen de sombra, la implementación de halos alrededor de objetos o la ubicación de áreas donde los objetos se superponen entre sí. En muchos casos, el búfer se mantiene en la memoria de gráficos en una tarjeta gráfica para que se pueda acceder rápidamente durante el renderizado.
El concepto de un búfer de plantilla originalmente era una forma de crear una máscara bidimensional (2D) que podría aplicarse a una escena tridimensional (3D) a medida que los vértices se movían a través de la tubería de gráficos. Si la ubicación del vértice 3D, una vez rasterizada, se relaciona con un área del búfer de galería de símbolos que no se estableció en cero, entonces ese vértice podría ignorarse y el resto de su proceso de canalización omitido. Esto permitió a los programadores una forma de representar solo pequeñas partes de una escena o de representar una imagen en una ventana de visualización de forma irregular, como un reflejo en un espejo pequeño dentro de una escena más grande, donde la forma del espejo se dibuja como una plantilla en el buffer, y luego el reflejo se dibuja a través de esa forma.
Los problemas de memoria llevaron a que la forma original de un búfer de plantilla fuera una cuadrícula de valores de un solo bit en el que cada píxel en el búfer solo podía ser verdadero o falso. A medida que se desarrollaron las tarjetas gráficas, la mayoría de los búferes pudieron mantener un valor de byte completo en cada ubicación de píxeles, lo que permitió a los programadores tener valores más complejos en una ubicación. Esto puede permitir que el búfer se use para detectar áreas donde los objetos se superponen, lo que se puede hacer incrementando el valor del búfer en una ubicación si un objeto ocupa ese píxel en la pantalla cuando está rasterizado. Después de esta operación, el valor de cada ubicación de píxel en el búfer será igual al número de objetos que cruzan ese píxel en una pantalla.
Uno de los usos más populares para un búfer de plantilla es crear sombras de volumen. Esto se puede hacer renderizando primero una escena con iluminación muy tenue para que todo parezca sombreado. A continuación, se realizan cálculos para determinar la ubicación de todas las superficies de polígonos en la escena que están iluminadas por una fuente de luz, y estas formas se transfieren al búfer de la plantilla. La escena se vuelve a representar como si cada objeto estuviera completamente iluminado y se combina a través de las formas de la plantilla en la escena sombreada, creando efectivamente una imagen que parece contener objetos con sombras.