En gráficos de computadora , la rasterización ( inglés británico ) o rasterización ( inglés americano ) es la tarea de tomar una imagen descrita en un formato de gráficos vectoriales (formas) y convertirla en una imagen rasterizada (una serie de píxeles , puntos o líneas, que, cuando se muestran juntos, crean la imagen que se representó a través de formas). [1] [2] La imagen rasterizada puede luego mostrarse en una pantalla de computadora , pantalla de video o impresora , o almacenarse en un formato de archivo de mapa de bits . La rasterización puede referirse a la técnica de dibujar modelos 3D , o a la conversión de primitivas de renderizado 2D , como polígonos y segmentos de línea , en un formato rasterizado.
El término "rasterización" proviene del alemán raster 'cuadrícula, patrón, esquema' y del latín rāstrum 'raspador, rastrillo'. [3] [4]
El algoritmo de línea de Bresenham es un ejemplo de un algoritmo utilizado para rasterizar líneas.
Se utilizan algoritmos como el algoritmo de círculo de punto medio para representar un círculo en un lienzo pixelado.
La rasterización es una de las técnicas típicas de renderizado de modelos 3D. En comparación con otras técnicas de renderizado como el trazado de rayos , la rasterización es extremadamente rápida y, por lo tanto, se utiliza en la mayoría de los motores 3D en tiempo real. Sin embargo, la rasterización es simplemente el proceso de calcular el mapeo de la geometría de la escena a los píxeles y no prescribe una forma particular de calcular el color de esos píxeles. El color específico de cada píxel es asignado por un sombreador de píxeles (que en las GPU modernas es completamente programable ). El sombreado puede tener en cuenta efectos físicos como la posición de la luz, sus aproximaciones o una intención puramente artística.
El proceso de rasterización de modelos 3D en un plano 2D para su visualización en la pantalla de una computadora (" espacio de pantalla ") a menudo se lleva a cabo mediante hardware de función fija (no programable) dentro del flujo de trabajo de gráficos . Esto se debe a que no existe ninguna motivación para modificar las técnicas de rasterización utilizadas en el momento de la renderización [5] y un sistema de propósito especial permite una alta eficiencia.
Los polígonos son una representación común de los modelos digitales 3D. Antes de la rasterización, los polígonos individuales se suelen dividir en triángulos; por lo tanto, un problema típico que se debe resolver en la rasterización 3D es la rasterización de un triángulo. Las propiedades que suelen requerirse de los algoritmos de rasterización de triángulos son que se rastericen dos triángulos adyacentes (es decir, aquellos que comparten un borde).
Esto lleva a establecer reglas de rasterización para garantizar las condiciones anteriores. Un conjunto de tales reglas se denomina regla de la parte superior izquierda , que establece que un píxel se rasteriza si y solo si
Un borde superior es un borde que es exactamente horizontal y se encuentra por encima de otros bordes, y un borde izquierdo es un borde no horizontal que está en el lado izquierdo del triángulo.
Esta regla se implementa, por ejemplo, en Direct3D [6] y en muchas implementaciones de OpenGL (aunque la especificación no la define y solo requiere una regla consistente [7] ).
La calidad de la rasterización se puede mejorar con antialiasing , que crea bordes "suaves". La precisión de subpíxeles es un método que tiene en cuenta las posiciones en una escala más fina que la cuadrícula de píxeles y puede producir resultados diferentes incluso si los puntos finales de una primitiva caen en las mismas coordenadas de píxeles, lo que produce animaciones de movimiento más suaves. El hardware simple o más antiguo, como PlayStation 1 , carecía de precisión de subpíxeles en la rasterización 3D. [8]