Rasterización

Rasterización
Información sobre la plantilla
Rasterizacion.jpeg
La imagen descrita en un formato gráfico vectorial se convierte en un conjunto de píxeles o puntos para ser desplegados en un medio de salida digital

Rasterización. Proceso por el cual una imagen descrita en un formato gráfico vectorial se convierte en un conjunto de píxeles o puntos para ser desplegados en un medio de salida digital, como una pantalla de computadora, una impresora electrónica o una imagen de mapa de bits (bitmap).

Origen

La palabra ráster proviene del inglés raster, anteriormente utilizada en el vocabulario técnico de la televisión para referirse a un tubo catódico. Por analogía con los surcos dejados por un rastrillo. El ráster o rastrum es una pequeña pluma de escritura provista de cinco puntas y utilizada para trazar pentagramas musicales. El uso de la palabra ráster se testifica en el latín medieval en referencia a la herramienta que sirve para rastrillar el sembrado: rastra, rastrillo, rastro.

Aplicación

El término rasterización puede ser aplicado en general a cualquier proceso por el cual la información vectorial puede ser convertida en formato de mapa de bits. En el uso cotidiano, el término se refiere también a los algoritmos de renderizado para la visualización de figuras 3D en una computadora. La rasterización es una de las técnicas más populares para producir gráficos 3D en tiempo real. Las aplicaciones en tiempo real deben responder inmediatamente a lo qué el usuario haga y por ende producir al menos 25 cuadros por segundo para conseguir una animación suave.

Comparado con otras técnicas de renderizado 3D como Ray tracing, la rasterización es extremadamente rápida. Sin embargo, esta es simplemente el proceso de computar el mapeado desde la geometría de la escena hasta los píxeles y no lleva a una forma particular de computar el color de los mismos. El Sombreado, incluyendo sombrado programable, puede estar basado en transporte de luz física o motivo artístico. Al estar las pantallas modernas orientadas al despliegue de mapas de bits, la diferencia los mismos y los gráficos vectoriales está en dónde ocurre el proceso de rasterización; del lado del cliente, en el caso de gráficos vectoriales, a diferencia de lo rasterizado en el servidor.

Este procedimiento se suele usar en momentos muy concretos:

  • Cuando se trabaja con imágenes de una gran complejidad (con muchos objetos independientes, muchos rellenos degradados, muchas capas, etc.) Ahora bien, puesto que al crear un mapa de bits se elimina toda información de los objetos vectoriales, debe tenerse en cuenta la posibilidad de efectuar copias de seguridad del archivo vectorial antes de ser rasterizado, o bien esperar a que la parte de la imagen que se va a rasterizar sea ya definitiva...
  • Cuando se van a aplicar filtros a la imagen resultante, cosa que no se efectúa con los objetos iniciales.

El resultado de este método de trabajo híbrido es un archivo que presenta ciertas partes vectoriales y ciertas partes bitmap. El mismo puede guardarse sin mayor problema en el formato correspondiente al programa de ilustración (en algunos casos, se permite que el mapa de bits no forme parte del archivo, sino que se enlace externamente al fichero vectorial solamente).

Enfoque básico

El algoritmo de rasterización más simple toma una escena 3D, descrita en polígonos y la proyecta sobre una superficie 2D, usualmente un monitor de PC. Los polígonos son representados como un conjunto de triángulos, estos últimos representados por tres vértices en tres espacios. A un nivel muy básico, los rasterizadores solo toman una cantidad de vértices, los transforman en puntos bidimensionales correspondientes a un monitor y rellenan los triángulos bidimensionales transformados de forma apropiada.

Recorte

Una vez que los vértices de los triángulos son transformados a sus localizaciones 2D previstas, algunas de esas localizaciones pueden quedar fuera de la ventana de visualización, o del área de la pantalla en la cual los píxeles pueden ser representados. Clipping es el proceso de cortar los triángulos de manera que ocupen el área visible. La técnica más común es la del algoritmo Sutherland-Hodgeman. En esta aproximación, cada una de las 4 esquinas del plano de imagen es probada en un tiempo. Para cada esquina, probar todos los puntos a ser renderizados. Si el punto queda fuera de la esquina, este se elimina. Por cada borde de triángulo que es intersecado por la esquina del plano de imagen, o sea, un vértice de la esquina está dentro de la imagen y otro fuera, un punto es insertado en la intersección y el punto exterior es eliminado.

Conversión de escaneo

El paso final en el proceso de rasterización tradicional es rellenar los triángulos bidimensionales, que están de forma comprobada dentro del plano de la imagen. Esto también es conocido como conversión de escaneo. Para que un píxel sea renderizado, este debe estar dentro de un triángulo y no debe estar oculto, o bloqueado por otro píxel. Al ser difícil saber si el motor de rasterización dibujará todos los píxeles de adelante hacia atrás tiene que haber alguna manera de asegurarse que los píxeles cerca del observador no están siendo superpuestos por píxeles más lejanos. Un Z buffer es la solución más común, ya que cada vez que un píxel es dibujado, este actualiza el z buffer con su valor de profundidad. Cada nuevo píxel debe verificar su valor de profundidad con el valor de z buffer antes de ser dibujado. Los píxeles más cercanos son dibujados mientras que los más lejanos son descartados. Para averiguar el color de un píxel, deben ser aplicados cálculos de texturas y sombreado.

Antes de que el color final del píxel sea decidido, un cálculo de iluminación debe ser computado para sombrear a los píxeles basados en alguna luz que puede estar presente en la escena. Por lo general hay tres tipos de luces comúnmente usadas en escenas: luces direccionales , luces de punto y los focos.

Existen varios algoritmos de sombreado para los rasterizadores. Todos los algoritmos de sombreado deben tomar en cuenta la distancia desde la luz y el vector normal del objeto sombreado con respecto a la dirección incidente de la luz. Los algoritmos más rápidos simplemente sombrean todos los píxeles sobre cualquier triángulo dado con solo un valor de iluminación, también conocidos como sombreado plano. No hay forma de crear la ilusión de superficies suaves con este método excepto subdividiendo en triángulos más pequeños. Los algoritmos pueden también sombrear vértices separadamente e interpolar el valor lumínico de los vértices al dibujar los píxeles. Esto es conocido como sombreado Gouraud. La más lenta pero más realista aproximación es calcular la luz separadamente para cada pixel, también conocido como sombreado Phong. Este realiza interpolación binaria de los vectores normales y usa el resultado para hacer cálculos de iluminación locales.

Técnicas de aceleración

Para extraer el máximo rendimiento de un motor de rasterización, un número mínimo de polígonos debe ser enviado al renderizador. Unas cuantas técnicas de aceleración se desarrollaron a través del tiempo para remover objetos no visibles. La forma más simple de eliminar polígonos innecesarios es eliminar todos aquellos que el observador no puede ver. Esto se conoce como backface culling. Ya que la mayoría de los objetos 3D son completamente cerrados, los polígonos no enfrentados al observador están siempre bloqueados por polígonos que sí lo están, excepto cuando el observador está dentro del objeto. El enfrentamiento de un polígono está definido por el winding u orden en el que sus vértices se envían al renderizador. Un renderizador puede definir un winding en el sentido de las agujas del reloj o contrario como enfrentamiento hacia el frente o hacia atrás. Una vez que un polígono se transformó a un espacio en la pantalla, su winding puede ser verificado y si está en la dirección opuesta, no es dibujado. Por su puesto, backface culling no puede ser usado con volúmenes abiertos o degenerados.

Mejoras posteriores

Si bien el proceso de rasterización básico hace décadas que se conoce, las aplicaciones modernas siguen haciendo optimizaciones y adiciones para aumentar el rango de posibilidades del motor de rasterización.

Filtrado de texturas

Las texturas son creadas a resoluciones específicas, pero ya que la superficie en donde están aplicadas puede estar a cualquier distancia del observador, estas pueden mostrarse en tamaños arbitrarios en la imagen final. Como resultado, un píxel en la pantalla usualmente no corresponde directamente a un texel. Alguna técnica de filtrado debe ser aplicada para lograr imágenes claras a cualquier distancia. Hay varios métodos, con diferentes relaciones entre calidad de imagen y complejidad computacional.

Mapeado del entorno

Environment mapping es una forma de mapeado de texturas en la cual las coordenadas de la textura son dependientes de la vista. Una aplicación común, por ejemplo, es simular reflejo en un objeto con brillo. Uno, por ejemplo, se puede mapear el entorno de un cuarto a una copa de metal, como el observador se mueva alrededor de la copa, las coordenadas de la textura en los vértices de la copa se mueven proporcionalmente, dando la ilusión de metal reflectivo.

Mapeado de imperfecciones, golpes, rugosidad

Bump mapping es otra forma de mapeado de textura que no provee a los píxeles de color sino de profundidad. Especialmente con pixel shaders modernos, bump mapping crea la sensación de rugosidad dependiente de la luz y el punto de vista en una superficie para aumentar el realismo.

Nivel de detalle

En muchas aplicaciones modernas, el número de polígonos en una escena puede ser impresionante. Sin embargo, un observador en una escena solo podrá discernir detalles de objetos cercanos. Los algoritmos de nivel de detalle varían la complejidad de la geometría en función de la distancia al observador. Los objetos justo enfrente del observador pueden ser mostrados en su completa complejidad mientras que los objetos que están más lejos pueden ser simplificados dinámicamente, o inclusive reemplazados por sprites.

Sombras

Los cálculos de iluminación en el tradicional proceso de rasterización no tienen en cuenta la obstrucción de objetos. Shadow mapping (mapeado de sombras) y shadow volumes (volúmenes de sombras) son dos comunes técnicas modernas para crear sombras.

Fuentes

  • Rasterización. Disponible en: Temas informáticos Consultado 16 de enero de 2017.
  • Rasterización. Disponible en: Gráficos Consultado 16 de enero de 2017.