La tarea de los primitivos de llenado se puede separar en dos partes:
1. la decisión de que pixeles llenar (esto depende de la forma de la primitiva), y
2. la decisión más sencilla de cual valor utilizar para el relleno.
En general, determinar que pixeles llenar consiste de tomar líneas de rastreo sucesivas que interceptan la primitiva y llenar en intervalos (spans) de pixeles adyacentes que están dentro de la primitiva de izquierda a derecha.
Para llenar un rectángulo con un color sólido, se asigna a cada pixel sobre una misma línea de rastreo desde el borde izquierdo al borde derecho el mismo valor de pixel; o sea llenamos cada intervalo de xmin a xmax. Se aprovecha de varios tipos de coherencias no solamente para convertir primitivas de 2D, pero también de 3D.
- Los intervalos explotan la coherencia espacial (spatial coherencia) de una primitiva: el hecho que las primitivas a menudo no cambian de pixel en pixel dentro de un intervalo o de línea de rastreo a línea de rastreo. Se explota esta coherencia buscando solo aquellos pixeles donde ocurren cambios.
- Para una primitiva trazada de forma sólida, se asigna el mismo valor a todos los pixeles en un mismo intervalo, proporcionando coherencia de intervalo (span coherencia).
- Un rectángulo trazado de forma sólida también muestra una fuerte coherencia de línea de rastreo (scan-line coherencia) ya que líneas de rastreo consecutivas que interceptan el rectángulo son idéntica; más tarde se usa también coherencia de arista (edge coherencia) para los lados de polígonos generales.
Conceptos del algoritmo de relleno de áreas
El algoritmo presentado a continuación considera polígonos cóncavos al igual que convexos, incluyendo aquellos que puedan tener huecos internos o interceptados por sí mismos.
La siguiente figura ilustra el procedimiento de la línea de rastreo para el llenado sólido de polígono.
No hay comentarios:
Publicar un comentario