Rasterización

Conversión de una imagen de gráficos vectoriales a una imagen rasterizada
Imagen gráfica rasterizada

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.

Etimología

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]

Imágenes 2D

Primitivas de línea

El algoritmo de línea de Bresenham es un ejemplo de un algoritmo utilizado para rasterizar líneas.

Primitivos circulares

Se utilizan algoritmos como el algoritmo de círculo de punto medio para representar un círculo en un lienzo pixelado.

Imágenes 3D

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.

Rasterización de triángulos

Rasterización de triángulos utilizando la regla de la esquina superior izquierda

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).

  1. no deja huecos (píxeles no rasterizados) entre los triángulos, de modo que el área rasterizada se rellena completamente (al igual que la superficie de los triángulos adyacentes). Y
  2. Ningún píxel se rasteriza más de una vez, es decir, los triángulos rasterizados no se superponen. Esto es para garantizar que el resultado no dependa del orden en el que se rasterizan los triángulos. Sobredibujar píxeles también puede significar desperdiciar potencia de procesamiento en píxeles que se sobrescribirían.

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

  1. Su centro se encuentra completamente dentro del triángulo. O
  2. su centro se encuentra exactamente en el borde del triángulo (o bordes múltiples en el caso de esquinas) que es (o, en el caso de esquinas, todos son) el borde superior o izquierdo .

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] ).

Calidad

Precisión de píxeles (izquierda) vs precisión de subpíxeles (centro) vs anti-aliasing (derecha)

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]

Véase también

Referencias

  1. ^ Michael F. Worboys (30 de octubre de 1995). GIS: una perspectiva informática. CRC Press. pp. 232–. ISBN 978-0-7484-0065-2.
  2. ^ Kang-Tsung Chang (27 de agosto de 2007). Programación de ArcObjects con VBA: un enfoque orientado a tareas, segunda edición. CRC Press. pp. 91–. ISBN 978-1-4200-0918-7.
  3. ^ Harper, Douglas. "raster". Diccionario Etimológico en Línea .
  4. ^ rastrum. Charlton T. Lewis y Charles Short. Un diccionario latino sobre el Proyecto Perseo .
  5. ^ "Rasterización: una implementación práctica". www.scratchapixel.com . Consultado el 6 de octubre de 2023 .
  6. ^ "Reglas de rasterización (Direct3D 9)". Microsoft Docs . Consultado el 19 de abril de 2020 .
  7. ^ OpenGL 4.6 (PDF) . pág. 478.
  8. ^ "Problemas de rasterización de PlayStation". Libretro . 4 de octubre de 2016 . Consultado el 19 de abril de 2020 .
  • Artículos de Michael Abrash sobre gráficos por computadora
  • API DirectX de Microsoft
  • API de OpenGL
  • Matrices (incluidas las matrices de transformación) de MathWorld
  • Rasterización, una implementación práctica
Retrieved from "https://en.wikipedia.org/w/index.php?title=Rasterisation&oldid=1225254353"