jueves, 30 de septiembre de 2010

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