Gráficos por computadora: algoritmo de línea de escaneo en 3D (eliminación de superficies ocultas)

Este algoritmo se basa en el método Imagen-espacio y el concepto de coherencia. Como su propio nombre sugiere, el algoritmo Scan-line procesa una línea a la vez en lugar de procesar un píxel (un punto en la pantalla de trama) a la vez. El algoritmo funciona de la siguiente manera:

  1. Aquí, cada punto en el que la línea de exploración intersecta las superficies del polígono se examina (procesa) de izquierda a derecha y en este proceso.
  2. El cálculo de profundidad (si se encuentran superficies superpuestas) se realiza para identificar la región oculta (superficie visible) de los polígonos que está más cerca del plano de visualización.
  3. Tan pronto como se identifican las superficies visibles (superficies ocultas), los valores de intensidad de color correspondientes se actualizan en el búfer de actualización (búfer de fotogramas) si y solo si la bandera de la superficie correspondiente está activada.
  4. Este algoritmo funciona de manera eficiente con una o más de una superficie poligonal y este algoritmo es solo una extensión del algoritmo de línea de exploración de relleno de polígonos.

Estructura de datos utilizada por el algoritmo Scan-Line

El algoritmo de línea de exploración utiliza la siguiente estructura de datos:

1. Tabla de lista de bordes (lista): esta lista mantiene el registro de todos los bordes almacenando sus coordenadas de punto final. La coordenada x que elijamos, cuya coordenada Y = Y min.

Edge list table

Figura 1

2. Tabla (lista) de bordes activos: esta tabla contiene todos los bordes del polígono que son intersectados (cruzados) por la línea de exploración actual. Los bordes se colocan en la tabla de manera ordenada (valor creciente de x). 

Active edges list

Figura 2

3. Tabla de polígonos (lista): esta lista consta de: 

  • Identificación del polígono.
  • Ecuación plana.
  • Color Información de la superficie.
  • Bandera de superficie (activar/desactivar)].
Polygon table

Fig. 3

Entendamos más por el ejemplo como se muestra a continuación en la figura Fig.4:

Scan-line algorithm

Figura 4

Aquí, se dan dos polígonos superpuestos que se cruzan con tres líneas de exploración S 1 , S 2 , S 3 respectivamente. Entonces, ¿qué sucede si se aplica el algoritmo Scan-line para identificar la superficie oculta (superficie visible)?

1. Primero, examine la línea de exploración (S 1 ), cuya, 

  • La tabla perimetral activa (Aet) contiene: [AD,BC,RS,PQ] y
  • La bandera se establece en «on» para la superficie (S 1 ) y la superficie (S 2 ) y la bandera se establece en «off» para la región entre BX y RX, ya que es una región exterior de la superficie del polígono y no se debe proyectar a la vista. -puerto (dispositivos de visualización), ahora
  • Coloque las intensidades de color de las superficies correspondientes en el búfer de fotogramas (búfer de actualización).

2. Luego, procese la línea de exploración (S 2 ), cuya,

  • La tabla perimetral activa (Aet) contiene: [AD,BC,RS,PQ] y
  • La bandera se establece en «on» para superficie (ABCD) y superficie (PQRS),
  • Ambas superficies de los polígonos se superponen entre sí, por lo que para esta región superpuesta, ¿cuál de las intensidades de la superficie debe tenerse en cuenta? Entonces, para responder esto, calcula la profundidad (Z min ) de la superficie (S 1 ) y la superficie (S 2 ) de esta parte superpuesta, a continuación,
  • Si profundidad(S 1 )>profundidad(S 2 ), entonces la Bandera de la superficie S 1 =” on” y la intensidad de la superficie S 1 se considerarán de lo contrario S 2 , ahora
  • Coloque las intensidades de color de las superficies correspondientes cuya bandera está activada en el búfer de fotogramas (búfer de actualización).

3. Como la línea de exploración (S 3 ) pasa por la misma parte por la que pasa la línea de exploración (S 2 ), S 3 también tiene los mismos componentes de tabla de borde activo (Aet) que S 2 y no es necesario calcular la profundidad (S1) y profundidad (S2) nuevamente para que S 3 pueda aprovechar el concepto de Coherencia.

Nota: La coherencia es un concepto que aprovecha las regularidades y uniformidades que posee una escena.

Algoritmo de línea de exploración

  • Inicialice la tabla Edge con todos los bordes con sus puntos finales correspondientes.
  • Inicialice la tabla de borde activo con todos los bordes que cruza la línea de exploración actual en orden ordenado (orden creciente de x)
  • Inicialice una tabla de polígonos con [Id. de polígono, Ecuación del plano, Información de color de la superficie, Indicador de superficie (activar/desactivar)].
  • Ahora, repita los siguientes pasos para todas las líneas de exploración:
    • Ingrese los valores correspondientes en la lista de borde activo en orden ordenado usando la coordenada Y como valor.
    • Escanea el polígono hasta que Flag=”on” usando y haz color_intensity=background color.
    • Cuando la bandera de un polígono = «encendido», la intensidad de color de la superficie del polígono correspondiente (S i) se insertará en el búfer de marco (búfer de actualización).
    • Cuando dos o más superficies de polígonos se superponen y su Bandera = «encendido», averigüe la profundidad de esa región correspondiente de las superficies de los polígonos y configure Color_intensity = min [profundidad (S1), profundidad (S2)].
    • Utilice el concepto de Coherencia para los planos restantes.

Publicación traducida automáticamente

Artículo escrito por madhav_mohan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *