Diferencia entre revisiones de «Rasterización»

Contenido eliminado Contenido añadido
Deshecha la edición 61162944 de 189.137.63.80 (disc.)
Jorgelrm (discusión · contribs.)
m cambios de redacción y ortografía.
Línea 1:
La '''rasterización''' es el proceso por el cual una [[imagen]] descrita en un formato [[gráfico vectorial]] se convierte en un conjunto de [[píxel]]es o puntos para ser desplegados en un medio de salida [[señal digital|digital]], como una [[Monitor de computadora|pantalla]] de [[computadora]], una [[impresora]] electrónica o una imagen[[Imagen de mapa de bits]] ([[bitmap]]).
Este procedimiento se suele usar en momentos muy concretos:
 
Línea 6:
* 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 fichero[[archivo (informática) | archivo]] que presenta ciertas partes vectoriales y ciertas partes bitmap. El ficheromismo 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).
 
== Etimología ==
La palabra rasterrá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 rasterráster o rastrum ''[[wiktionary:rastrum|rastrum]]'' es una pequeña pluma de escritura provista de cinco puntas y utilizada para trazar pentagramas musicales. El uso de la palabra Rasterráster se testifica en el latinlatín medieval en referencia a la herramienta que sirve para rastrillar el sembrado : rastra, rastrillo, rastro.
 
== Introducció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 formatformato [[raster]]de mapa de bits.
 
En el uso cotidiano, el término se refiere altambién populara algoritmolos algoritmos de [[renderizado]] para la visualización de figuras 3D en una computadora. La rasterización es actualmente la técnica más popular 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 [[persistencia de la visión|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 esoslos píxelesmismos. El [[sombreado|Sombreado]], incluyendo [[Lenguaje de sombreado|sombrado programable]], puede estar basado en transporte de luz física o motivo artístico.
 
Al estar las pantallas modernas orientadas aal gráficosdespliegue de mapas de rasterbits, la diferencia entrelos solo rastermismos y los gráficos vectoriales está en dónde sonocurre rasterizadasel proceso de rasterización; del lado del cliente, en el caso de gráficos vectoriales, a diferencia de lo rasterizado en el servidor.
 
== 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.
 
=== ClippingRecorte (recorteclipping) ===
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 pixelespí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 triangulotriá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 por que es necesario la eliminacion de lo eliminado en las eliminatorias mundiales.
 
=== Conversión de escaneo ===
El paso final en el proceso de rasterización tradicional es rellenar los triágulostriángulos 2Dbidimensionales, que ahora están ende elforma comprobada dentro del plano de la imagen. Esto también es conocido como conversión de escaneo.
 
El primer problema a considerar es si dibujar o no un determinado píxel. 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. Hay varios algoritmos para rellenar los píxeles dentro de un triángulo, el más popular de ellos es el algoritmo de [[línea de escaneo]]. 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 [[zZ-Buffer| Z buffer]] es la solución más común. El z buffer es una disposición 2D que corresponde al plano de imagen que almacena un valor de profundidad para cada píxel. 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. Un [[mapa de textura]] es un mapa de bits aplicado a un triángulo para definir su aspecto. Cada vértice en un triángulo también está asociado a una textura y a una coordenada de textura (u,v) para texturas 2D normales además de su coordenada de posición. Cada vez que se renderiza un píxel en un triángulo, el texel (texture element o elemento de textura) debe ser encontrado en la textura. Esto se logra interpolando las coordenadas de textura asociadas a los vértices del triángulo con la distancia en pantalla de los píxeles desde los vértices. En proyecciones de perspectiva, la interpolación se hace sobre las coordenadas de texturas divididas por la profundidad del vértice para evitar un problema llamado '''perspective foreshortening'''.
Línea 61:
 
=== Nivel de detalle (LOD) ===
En muchas aplicaciones modernas, el número de polígonos en una escena puede ser impresionante. Sin embargo, un observador en una escena sólosolo 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 [[Sprite (videojuegos)|sprites]].
 
=== Sombras ===
Línea 69:
Comenzando en los 90', la [[aceleración por hardware]] para consumidores normales de computadoras de escritorio se ha convertido en la norma. Mientras que los programadores gráficos tempranamente se habían basado más en [[lenguaje ensamblador]] codificado a mano para que sus programas funcionaran más rápido, la mayoría de los programas modernos están escritos para funcionar a través de una de las existentes APIs gráficas, las cuales manejan a la [[GPU]].
 
Las últimas GPUs[[Unidad de procesamiento gráfico | Unidades de procesamiento gráfico]] poseen soporte para [[Pixel Shader]]s programables, que mejoran drásticamente las posibilidades de los programadores. La tendencia está apuntada a la completa programabilidad de la ''pipeline'' (tubería, conducto) gráfica.
 
== Procesador de imágenes rasterizadas ==
 
Un procesador de imágenes rasterizadas, o RIP, es un dispositivo que se usa en los sistemas de impresión para producir una imagen de [[mapa de bits]]. Posteriormente, el [[''bitmap]]'' generado por el [[Unidad central de procesamiento|procesador]] se envía a un [[impresora|dispositivo de impresión]]. La entrada de datos en el RIP puede ser una página generada en un lenguaje de descripción de página de de alto nivel como puede ser [[PostScript]], [[PDF]] (del acrónimo inglés Portable Document Format) o [[XPS (documento)|XPS]]. También puede ser otro bitmap de un dispositivo cuya salida es enviada a la entrada del RIP. En última instancia, el dispositivo RIP aplica [[algoritmo]]s de [[interpolación]] y suavizado sobre el bitmap de entrada para generar el bitmap de salida.
 
La finalidad del procesamiento para el que se ha concebido un RIP es conseguir una [[rasterizar|imagen rasterizada]] de alta resolución a partir de una información digital [[imagen vectorial|vectorial]]. Inicialmente, los dispositivos RIPs eran una etapa de la electrónica del [[hardware]] que recibía la descripción de la página a través de una [[interfaz]], (generalmente la [[RS232]]) y generaba una salida que posteriormente se usaba para habilitar o deshabilitar cada [[píxel]] en tiempo real del dispositivo de salida como pudiera ser el escáner de una filmadora de [[fotolito]]s.
Línea 83:
* Interpretación. Este es el paso donde el lenguaje de descripción de página soportado se transforma en una representación de una página particular. Muchos RIPs procesan páginas con tanta intensidad que el funcionamiento habitual de la máquina es solo para la página en curso, es decir, se procesa una sola página cada vez. Una vez que la página se ha generado se procesa la siguiente.
 
* Renderizado. Proceso a través del cual la representación interna particular se transforma en un bitmapmapa de bits de tono continuo. Hay que hacer notar que, en la práctica, la interpretación y el renderizado se hacen juntos con bastante frecuencia. Los lenguajes simples (en su mayor parte los más antiguos) se diseñaron para trabajar con mínimos requerimientos de hardware, por eso tienden a ejecutar el renderizado directamente.
 
* Proyección. Para que se imprima, un bitmapmapa de bits de tonos continuos se ha de transformar previamente en otro de tonos medios ([[patrón|patrones]] de puntos). Hay dos métodos o tipos para este paso. La proyección por modificación en la amplitud (AM o Amplitude Modification) y la proyección [[estocástico|estocástica]] o por modulación en la frecuencia (FM o Frecuency Modulation). En la proyección AM, la variación del tamaño de los puntos depende de la densidad del objeto y sus valores tonales. Los puntos se colocan en una cuadrícula fija pero son mayores si corresponden a un área de la imagen de alta densidad. En la proyección FM, el tamaño de los puntos permanece siempre constante y se ubican en un orden aleatorio para crear áreas de imagen más claras u oscuras. El emplazamiento de los puntos, y la densidad de estos, se controla a partir de un sofisticado algoritmo matemático.
 
Los RIP se usan en las [[impresora láser|impresoras láser]] para comunicar las imágenes rasterizadas al láser de barrido de la impresora.