Loading

Alison's New App is now available on iOS and Android! Download Now

Study Reminders
Support
Text Version

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Hola y bienvenidos a la conferencia número 23 en el curso Gráficos Informáticos. Por lo tanto, actualmente estamos discutiendo el gasoducto y hay cinco etapas en la tubería, como todos sabemos.
La primera etapa es la representación de objetos, la segunda etapa es la transformación de modelado, la tercera etapa es la iluminación, la cuarta etapa es la tubería de visualización, y la quinta etapa es la conversión de exploración. Entre ellos, actualmente estamos en la cuarta etapa que está viendo la transformación. Las tres etapas anteriores ya hemos discutido.
Ahora, en esta cuarta etapa, como recordarán, hay muchas subetapas. Así que hay 3 transformaciones y 2 subetapas relacionadas con algunas otras operaciones. Por lo tanto, las tres transformaciones son la transformación de vista, la transformación de proyección y la transformación de viewport.
Entonces tenemos dos operaciones, el recorte y la eliminación de la superficie oculta. Ahora, entre todas estas transformaciones y operaciones, ya hemos cubierto las tres transformaciones y el recorte.
Hoy, vamos a discutir el resto de la operación que se oculta la eliminación de la superficie. Veamos qué es la eliminación oculta de la superficie, cuál es la idea básica, y cómo podemos hacer esto.
(Consulte la hora de la diapositiva: 02:22) Antes, durante nuestra discusión sobre el recorte, hemos aprendido que cómo eliminar objetos total o parcialmente que están fuera del volumen de vista. Así que los que hicimos utilizando los algoritmos de recorte. Por lo tanto, debe tener en cuenta que el recorte se ha realizado en objetos que están parcial o totalmente fuera del volumen de vista. A veces, en realidad necesitamos eliminar de nuevo los objetos total o parcialmente que están dentro del volumen de vista.
Así que en caso de recorte, estamos tratando con objetos que están fuera del volumen de vista, mientras que en caso de eliminación de la superficie oculta, tratamos con los objetos que están dentro del volumen. Ahora cuando los objetos están dentro del volumen, claramente, no podemos aplicar el algoritmo de recorte porque los algoritmos de recorte están diseñados para detectar los objetos que están fuera, ya sea total o parcialmente.
Veamos un ejemplo. Considere esta imagen. Aquí, hay dos objetos; este es el uno y este cilindro es el otro. Ahora lo ideal es que haya una superficie aquí. Para la generación de imágenes realistas, si estamos mirando este objeto desde esta dirección entonces idealmente, no deberíamos ser capaces de ver esta superficie representada por la línea de límite de puntos, esta superficie. Así que si el espectador se encuentra en este punto aquí entonces este objeto Una superficie, que está detrás de este objeto B no debe ser visible para el espectador.
Así que antes de hacer que la imagen tenga el efecto realista, deberíamos ser capaces de eliminar esta superficie de la imagen renderizada.
Aquí en este caso no podemos usar recorte, porque aquí estamos asumiendo que ambos objetos están dentro del volumen de vista. Por lo tanto, los algoritmos de recorte no son aplicables. Lo que requerimos es un algoritmo diferente o un conjunto diferente de algoritmos. Ahora, estos algoritmos se conocen colectivamente como métodos ocultos de eliminación de superficies o alternativamente, métodos de detección de superficies visibles.
Entonces, para tener en cuenta qué recorte, ¿qué hacemos? Tratamos de eliminar objetos que están parcial o totalmente fuera del volumen de vista. Con la eliminación oculta de la superficie, ¿qué hacemos? Tratamos de eliminar objetos o superficies de objetos, que están dentro del volumen de vista pero que están bloqueados de la vista debido a la presencia de otros objetos o superficies con respecto a una posición de visión particular.
Así que en caso de superficie oculta, estamos asumiendo una dirección de visión específica. Porque una superficie oculta de una posición de visión particular puede no ser así si lo estamos mirando desde otra dirección. Así que con respecto a la posición de visualización sólo, podemos determinar si la superficie o un objeto está oculto o no.
Ahora, antes de entrar en los detalles de los métodos para la eliminación de la superficie oculta, debemos tener en cuenta que hay dos supuestos que vamos a hacer. En primer lugar vamos a utilizar un sistema de coordenadas diestro y asumiremos que el espectador mirando la escena a lo largo de la dirección Z negativa. En segundo lugar, los objetos que estén allí en la escena tienen superficies poligonales, por lo que todas las superficies del objeto son poligonales. Estos dos supuestos que haremos para explicar los métodos ocultos de eliminación de la superficie.
Ahora vamos a entrar en los detalles de los métodos que hay para detectar y eliminar superficies ocultas.
Ahora hay muchos métodos, todos estos métodos podemos dividir ampliamente en dos tipos. Uno es el método de espacio de objeto, el segundo es el método de espacio de imagen. Entonces, ¿cuál es la idea detrás de estos métodos que tratemos de entender?
En el caso del método de espacio de objeto lo que hacemos, comparamos objetos o partes de los objetos entre sí para determinar las superficies visibles. Así que aquí estamos tratando con objetos a nivel de 3D.
Y el enfoque general que se sigue para realizar la eliminación de la superficie oculta con un método de espacio de objeto consta de dos etapas en general. Así que para cada objeto en la escena lo que hacemos es primero que determinamos aquellas partes del objeto cuya vista no está obstruida por otras partes o cualquier otro objeto con respecto a la especificación de visualización.
Por lo tanto, la primera etapa es determinar las partes que se ocultan con respecto a la posición de visualización. Y luego en la segunda posición, hacemos las partes que no están ocultas. Por lo tanto, esencialmente aquellas partes que no están obstruidas con el color del objeto. Así que estos dos son los pasos generales que se realizan en cualquier método de espacio de objetos a saber, la primera etapa es determinar las superficies que no están ocultas y en segunda etapa rendimos esas superficies o partes de los objetos con el color particular.
Desde aquí estamos tratando con objetos, por lo que esencialmente estos métodos funcionan antes de la proyección, a nivel de objetos 3D. Recuerde que una vez que realizamos la proyección, los objetos se transforman en una descripción 2D. Así que no podemos tener estas características 3D.
Entonces, ¿cuáles son las ventajas? Hay una ventaja. Por lo tanto, estos métodos de espacio de objetos proporcionan un método independiente del dispositivo y trabajan para cualquier resolución de la pantalla, pero también tiene algunos inconvenientes, a saber, la determinación de estas superficies que se ocultan o no se ocultan es la computación intensiva. En segundo lugar, dependiendo de la complejidad de la escena y también de los recursos que están disponibles.
Estos métodos pueden incluso llegar a ser inviables porque son intensivos en computación y si los recursos no son suficientes entonces es posible que no podamos implementarlos en absoluto.
Por lo general, tales métodos son adecuados para escenas simples con un pequeño número de objetos. Por lo tanto, los métodos de espacio de objetos son los mejores aplicables cuando la escena es simple y tiene un pequeño número de objetos.
En caso de método de espacio de imagen ¿qué sucede? Así como el nombre sugiere, la detección y representación tiene lugar en el nivel de imagen que significa después de las proyecciones. Así que aquí, la visibilidad se decide punto por punto en cada posición de píxel en el plano de proyección. Así que aquí, ya no estamos lidiando en el espacio 3D, estamos tratando en plano de proyección 2D a nivel de píxeles.
De nuevo, hay dos pasos en el enfoque general. Así que por cada píxel en la pantalla ¿qué hacemos? Primero determinamos los objetos que son más cercanos al espectador y son perforados por el proyector a través del píxel. Así que esencialmente, los objetos más cercanos que se proyectan a ese punto. En segundo lugar, el segundo paso es dibujar el píxel con el color del objeto.
Así que en la primera etapa, determinamos cuál es el objeto más cercano que se proyecta en el píxel, y en la segunda etapa asignamos el color del píxel como el color del objeto y que hacemos por cada píxel en la pantalla. Entonces, ¿para comparar antes lo que estábamos haciendo? Antes, lo estábamos haciendo por cada superficie aquí lo estamos haciendo por cada píxel.
Claramente, los métodos funcionan después de que las superficies son proyectadas y rasterizadas que significa mapeado a la cuadrícula de píxeles, a diferencia del caso anterior en el que estábamos en el dominio 3D.
Aquí los cálculos suelen ser menos comparados con los métodos de espacio de objetos. Sin embargo, el método depende de la resolución de pantalla porque estamos haciendo los cálculos para cada píxel. Así que si hay un cambio en la resolución entonces requerimos el re-cálculo de los colores del píxel. Así que esa es la sobrecarga.
En términos generales, existen estos dos métodos, métodos de espacio de objetos y métodos de espacio de imagen. Más adelante, veremos ejemplos de cada uno de estos métodos que son muy populares. Pero antes de entrar en eso vamos a tratar de hablar de algunas propiedades que en realidad se utilizan para llegar con métodos eficientes para la detección y eliminación de la superficie oculta.
Así que hay muchas propiedades de este tipo. Colectivamente, estas propiedades se denominan propiedades de coherencia, que se utilizan para reducir los cálculos en métodos ocultos de eliminación de superficies. Como ya hemos hablado, estos métodos son computacionalmente intensivos. Así que si utilizamos estas propiedades coherentes entonces alguna cantidad de cálculos se puede reducir como veremos más adelante.
Ahora estas propiedades están esencialmente relacionadas con algunas similitudes entre imágenes o partes de las imágenes y si realizamos el cómputo por una parte entonces debido a estas propiedades, podemos aplicar los resultados en otras partes y es así como reducimos el cómputo.
Así que, esencialmente, explotamos las similitudes locales que significa hacer uso de los resultados que hemos calculado para una parte de una escena o una imagen para las otras partes cercanas. Así que realizamos el cómputo por una parte y usamos el resultado para otra parte sin repetir el mismo cómputo y de esa manera, reducimos alguna cantidad de cómputo.
Ahora, hay muchas propiedades de coherencia tales; en términos generales, de seis tipos, la coherencia de los objetos, la coherencia de la cara, la coherencia del borde, la coherencia de la línea de exploración, la coherencia de la profundidad y la coherencia del marco. Tengamos rápidamente una discusión sobre cada uno de ellos para una mejor comprensión, aunque, no vamos a entrar en discusiones detalladas y cómo están relacionados con diferentes métodos.
Primero es la coherencia del objeto, ¿qué dice? Aquí, comprobamos la visibilidad de un objeto con respecto a otro objeto al comparar sus sólidos circunscritos, que son en muchos casos, de formas simples, como esferas o cubo. Así pues, solo si los sólidos se solapan vamos a seguir procesando. Si no hay solapamiento que significa que no hay superficies ocultas por lo que no necesitamos hacer ningún procesamiento para más. Así que esta es una forma sencilla de eliminar muchos cálculos debido a esta propiedad de coherencia de objeto.
A continuación, ven la coherencia. Aquí, las propiedades superficiales calculadas para una parte de una superficie pueden ser aplicadas a partes adyacentes de la misma superficie que es lo que es la implicación de esta propiedad de coherencia de la cara. Por ejemplo, si la superficie es pequeña entonces podemos suponer que la superficie es invisible a un espectador si una parte de ella invisible. Así que no necesitamos comprobar la invisibilidad para todas y cada una de las partes. Así que lo comprobamos por una parte y luego simplemente decimos que otras partes también serán invisibles si esa parte es invisible.
Luego, la tercera es la coherencia del borde Aquí, esta propiedad indica la visibilidad de los cambios de borde sólo cuando cruza otro borde. Si un segmento de un borde no intersecting es visible, determinamos sin otro cálculo el borde entero también es visible. Así que la coherencia de borde nos dice que habrá un cambio en la visibilidad sólo si el borde se cruza con otro borde. En otras palabras, si un segmento de un borde es visible y el borde no se cruza con ninguna otra orilla que significa que podemos decir que el borde entero también es visible.
Luego viene la coherencia de la línea de exploración, ¿qué dice? Indica o implica que una línea o segmento de superficie que es visible en una línea de exploración también es probable que sea visible en las líneas de exploración adyacentes y no es necesario realizar este cálculo de visibilidad para cada línea de exploración. Así que lo hacemos para una línea de exploración y aplicamos el resultado para líneas de exploración adyacentes.
A continuación, la coherencia de profundidad, que nos dice que la profundidad de las partes adyacentes de la misma superficie son similares. No hay mucho cambio en la profundidad en las partes adyacentes de una superficie. Esta información, a su vez, nos ayuda a determinar la visibilidad de partes adyacentes de una superficie sin demasiada computación.
A continuación, frame la coherencia, que nos dice que las imágenes de la misma escena en los puntos sucesivos en el tiempo es probable que sean similares a pesar de los pequeños cambios en los objetos y el punto de vista, excepto cerca de los bordes de los objetos en movimiento. Esto significa que no es necesario realizar cálculos de visibilidad para cada escena representada en la pantalla. Así que la coherencia del marco está relacionada con el cambio de escena. Anteriores propiedades de coherencia estaban relacionadas con imágenes estáticas aquí estamos hablando de cambio dinámico en imágenes y basado en esta propiedad de coherencia podemos concluir que la visibilidad se puede determinar sin computarla una y otra vez para cada escena.
De modo que se trata en definitiva de las seis propiedades de coherencia. Las primeras cinco propiedades están relacionadas con imágenes estáticas la última propiedad se puede utilizar para la representación de animaciones, que de todos modos no es parte de nuestras conferencias aquí y los métodos ocultos de eliminación de la superficie hacen uso de estas propiedades para reducir los cálculos. Ahora vamos a entrar en los detalles de tales métodos.
Así que empezamos con un método simple que se llama método de eliminación de la cara trasera.
¿Qué es este método? Esta es en realidad la forma más sencilla de eliminar un gran número de superficies ocultas para una escena que consiste en poliedros. Así que aquí, estamos asumiendo que cada objeto es un poliedro, y usando la eliminación de la cara posterior, podemos eliminar un gran número de superficies ocultas. El objetivo es detectar y eliminar superficies que están en la parte trasera de los objetos con respecto al espectador.
Por lo tanto, cuando una superficie está en el lado posterior de un objeto con respecto a un espectador particular claramente, durante la representación de la superficie de la espalda no se debe mostrar. Con el método de eliminación de la cara trasera, podemos detectar en esas superficies de la espalda y luego eliminarlas de una consideración adicional durante la renderización.
Los pasos son muy sencillos para este método en particular. Así que hay tres pasos. En el primer paso, determinamos un vector normal para cada superficie N representada en términos de sus cantidades escalares a, b, c a lo largo de los tres ejes. Estoy asumiendo aquí que todos ustedes saben calcular el vector normal para una superficie dada, si no entonces usted puede referirse a cualquier libro sobre álgebra vectorial, libro básico; es un proceso muy simple y no voy a discutir los detalles aquí.
Ahora, una vez que se decida lo normal comprobamos para este componente Z. Si este componente Z es menor que igual a 0, el componente escalar, entonces eliminamos esa superficie en particular porque cuando el componente Z es menor que 0, la superficie es la cara posterior, mientras que cuando es igual a 0 el vector de visión realmente roza la superficie. En ese caso, también, consideramos que es una cara de atrás.
Ahora, si c es mayor que 0 entonces retenemos la superficie no es la cara trasera y realizamos estos pasos uno y dos para todas las superficies en un bucle. Así que como se puede ver, es un método muy simple que simplemente tomamos una superficie a la vez, calcular su superficie normal y comprobar el componente Z el componente escalar de Z. Si es menor que igual a 0, entonces eliminamos la superficie de otra manera lo retenemos y lo hacemos para todas las superficies.
Consideremos un ejemplo. Supongamos que este es nuestro objeto, que contiene cuatro superficies ACB, ADB, DCB, y ADC; cuatro superficies están allí. Así que para cada una de estas superficies, realizamos el método de eliminación de la cara trasera. Para cada una de estas superficies, se calcula el componente Z de la superficie normal como se menciona en los pasos anteriores.
Hagámoslo por las superficies. Para ACB, el componente z de la normal es -12, por lo que es menor que igual a 0. Así que ACB no es visible como se puede ver desde este lado ACB está en la parte trasera de la superficie.
Para ADB, DCB y ADC los componentes z de la normalidad son -4, 4 y 2, respectivamente. Así que podemos ver que para DCB y ADC el componente z es mayor que 0, por lo que se trata de superficies visibles. Pero para el BAD, es menos de 0 de nuevo por lo que no es una superficie visible. Así que esa es la forma sencilla de hacerlo.
Y debes tener en cuenta aquí que estamos lidiando con la descripción 3D de los objetos en el sistema de coordenadas de vista, por lo que funciona en superficies, por lo tanto es un método de espacio de objetos. En la práctica, usando este método muy simple, podemos eliminar alrededor de la mitad de todas las superficies en una escena sin ningún otro cálculo complicado.
Sin embargo, existe un problema con este método. Este método no considera el oscurecimiento de una superficie por otros objetos en la escena. Entonces, ¿qué hicimos? Esencialmente eliminamos las caras de atrás de un objeto. Ahora aquí, la cara posterior está oscurecida por la superficie del mismo objeto. Si una superficie no es una cara posterior pero está oscurecida por la superficie de algún otro objeto entonces esas superficies no pueden ser determinadas o detectadas usando el método de eliminación de la cara posterior y requerimos algunos otros algoritmos.
Sin embargo, esos otros algoritmos son útiles para la detección de una superficie que está oscurecida por otras superficies de objetos y podemos usar esos algoritmos en conjunto con este método.
Discutamos uno de esos métodos que es el algoritmo de almacenamiento intermedio de profundidad o también conocido como algoritmo de almacenamiento intermedio Z.
Ahora, este algoritmo es un método de espacio de imagen. Eso significa que aquí realizamos comparaciones a nivel de píxel. Por lo que asumimos aquí que ya las superficies se proyectan en la cuadrícula de píxeles y luego estamos comparando la distancia de la superficie desde la posición del espectador.
Antes, mencionamos que después de la proyección se pierde la información de profundidad. Sin embargo, requerimos la información de profundidad aquí para comparar la distancia de la superficie de un espectador. Así que almacenamos esa información de profundidad incluso después de la proyección y asumimos un almacenamiento extra, que tiene esta información de profundidad, que se llama buffer de profundidad o Z-buffer. Aquí, el tamaño de este almacenamiento intermedio es el mismo que el almacenamiento intermedio de trama. Eso significa que hay un almacenamiento para cada píxel en este buffer.
Otra suposición que hacemos es que estamos tratando con volúmenes canónicos. La profundidad de cualquier punto no puede exceder el rango normalizado. Así que ya tenemos un rango normalizado del volumen y la profundidad no puede superar ese rango que estamos asumiendo. Si asumimos que entonces en realidad podemos arreglar el tamaño del buffer de profundidad o el número de bits por pixels. De lo contrario, si permitimos la profundidad sin restricciones, entonces no sabemos cuántos bits mantener y que pueden crear problemas de implementación. Así que vamos por algunas consideraciones estandarizadas.
Ahora, este es el algoritmo, el algoritmo de almacenamiento intermedio de profundidad que se muestra aquí. La entrada es el buffer de profundidad que se inicializa en 1; entonces tenemos el buffer de trama, que se inicializa al color de fondo; lista de superficies y lista de puntos proyectados para cada superficie; por lo que todos estos son de entrada. Y la salida es este almacenamiento intermedio de profundidad y el almacenamiento intermedio de trama con los valores adecuados. Esto significa que el valor del almacenamiento intermedio de profundidad se mantendrá en el cambio y el almacenamiento intermedio de trama contendrá los valores finales al final del algoritmo.
Entonces, ¿qué hacemos? Para cada superficie en esta lista de superficie, realizamos algunos pasos. Ahora, para cada superficie, tenemos las posiciones de pixel proyectadas. Así que para cada posición de pixel proyectada de la superficie i, j empezando por la posición de pixel más proyectada de la parte superior izquierda, ¿qué hacemos? Calculamos la profundidad denotada por d del punto proyectado en la superficie y luego la comparamos con la profundidad ya almacenada de ese punto.
Si d es menor que lo que ya está almacenado en el buffer de profundidad en la ubicación correspondiente, entonces actualizamos esta información de buffer de profundidad y luego actualizamos la información de buffer de marco con el color de la superficie particular y esto seguimos para todos los píxeles para esa superficie proyectada y lo hacemos para todas las superficies. Ahora la etapa crucial aquí es el cálculo de la profundidad, ¿cómo hacemos eso?
Podemos hacerlo de forma iterativa. Vamos a ver cómo.
Considere este escenario aquí. Esta es una manera ilustrativa de entender este método iterativo. Estamos considerando esta superficie triangular, que después de la proyección se ve algo así. Ahora, la ecuación de superficie que conocemos que podemos representar como ax + por + cz + d = 0. Una vez más, si usted no está familiarizado con esto, puede referirse a libros de texto básicos sobre vectores y aviones.
Ahora dada esta ecuación de la superficie, podemos encontrar este z valores en términos de a b c como se muestra aquí. Y el valor z es la profundidad de ese punto en particular por lo que esta es la profundidad de cualquier punto en la superficie. Ahora, estamos asumiendo el volumen de vista canónica. Eso significa que todas las proyecciones son proyecciones paralelas. Así que la proyección es simple, si un punto es x, y, z entonces después de la proyección, se convierte en x, y caemos el componente z. Así que esa es nuestra suposición.
Ahora vamos a considerar un pixel i proyectado, j de la superficie particular. Así que x es i, y es j. Ahora, la profundidad del punto de superficie original z es entonces dada por esta expresión donde reemplazamos x e y con i y j a, b, c, y d son constantes.
Ahora, a medida que progresamos a lo largo de la misma línea de exploración, digamos considerar este punto y este punto. El siguiente píxel está en i + 1, y j. Ahora, la profundidad del punto de superficie correspondiente en la siguiente ubicación de pixel viene dada por esta expresión donde reemplazamos i con i + 1. Después de expandir y reorganizar, podemos obtener este formulario.
Ahora esta parte, ya sabemos que es la profundidad del punto i, j. Así que simplemente podemos decir que la profundidad de z es (z-a/c), y aquí puedes ver esto es un término constante. Así que para los puntos sucesivos, podemos calcular la profundidad simplemente restando un término constante de la profundidad anterior que es el método iterativo.
Así que es a lo largo de una línea de exploración. ¿Qué sucede en las líneas de exploración? Un método iterativo similar podemos formular. Ahora, supongamos que el punto x, y en el borde de una superficie proyectada, digamos, aquí. Ahora en la siguiente línea de exploración, x se convierte en (x-1/m) en este caso, y el valor y se convierte en y menos 1; m es la pendiente de la línea de borde.
Entonces podemos calcular nueva profundidad en este nuevo punto como se muestra aquí y si expandimos y reorganizamos lo que obtendremos? Esta nueva profundidad en términos de la profundidad anterior y un término constante. Así que de nuevo, vemos que a través de líneas de exploración, podemos calcular la profundidad en los bordes añadiendo un término constante a la profundidad anterior, y luego a lo largo de la línea de exploración, podemos continuar restando un término constante de la profundidad anterior.
Así que esta es la forma iterativa de la profundidad de cálculo y este método que seguimos en el algoritmo Z-buffer para calcular la profundidad en un punto dado. Intentemos entender este algoritmo con un ejemplo ilustrativo.
Supongamos que hay dos superficies triangulares s1 y s2. Claramente, están en el volumen de vista. Ahora, los vértices de s1 se dan como estos tres vértices, s2 también se da como estos tres vértices. Como antes de que estemos asumiendo la proyección paralela debido a la transformación del volumen de vista canónica y también, podemos derivar puntos de proyección o los vértices proyectados de s1 y s2 en el plano de la vista para ser denotado por este vértices mostrados aquí, que esencialmente, podemos obtener simplemente dejando caer el componente z. Ahora, esta es la situación que se muestra en esta figura.
Ahora, se nos da un punto (3, 1) y queremos determinar el color en este punto. Tenga en cuenta que este punto es parte de ambas superficies, por lo que el color de la superficie que debe obtener, podemos determinar el uso del algoritmo. Ahora supongamos que cl1 y cl2 son los colores de s1 y s2 y bg es el color de fondo.
Ahora, inicialmente, los valores de almacenamiento intermedio de profundidad se establecen en un valor muy alto y se dice que los valores de almacenamiento intermedio de trama son de fondo, y luego seguimos los pasos del algoritmo, procesamos las superficies una a la vez en el orden s1 seguido de s2.
Ahora comencemos con s1, ¿qué pasa? De los vértices dados, podemos determinar la ecuación de la superficie del s1 para ser x + y + z-6 = 0. Entonces determinamos la profundidad del pixel de superficie más proyectado hacia la izquierda en la línea de exploración más alta que es pixel (0, 6) aquí, que es z para ser 0.
Ahora, este es el único punto en la línea de exploración más alta como se puede ver en la figura, a continuación, nos movemos a la siguiente línea de exploración a continuación que es y=5. Y de esta manera usando el método iterativo, determinamos la profundidad del pixel más proyectado a la izquierda en esta línea de exploración para ser, usando esta expresión para ser 1 porque aquí m es muy alto, infinito. Y así, la ecuación de la superficie es esta.
Entonces el algoritmo procede al cálculo de profundidad y determinación de color a lo largo de y= 5 hasta el borde derecho. En ese punto, va a la siguiente línea de exploración hacia abajo que es y= 4 aquí. Ahora, podemos saltar todos estos pasos y podemos ir directamente a y= 1, esta línea en la que se encuentra el punto de interés.
Ahora, siguiendo este procedimiento iterativo que hemos descrito anteriormente a través de líneas de exploración, calculamos primero la profundidad de la izquierda-la mayoría de los puntos aquí como z=5. Nos saltamos esos pasos, puedes hacer los cálculos por tu cuenta y enterarte. Entonces nos movemos a lo largo de esta línea de exploración cuando esta dirección. Así que vamos al siguiente punto aquí, luego aquí, y así hasta este punto, (3, 1), y calcular que en este punto z es 2.
Ahora, este valor de profundidad es menor que el valor ya almacenado que es infinito. Por lo tanto, establecemos este valor en la ubicación de almacenamiento intermedio de profundidad correspondiente y luego restablecemos el valor del almacenamiento intermedio de trama de fondo al color de la superficie 1.
Entonces nuestro procesamiento continuo para todos los puntos, pero esos son de no mucha relevancia aquí porque nos preocupa solo con este punto, por lo que nos saltaremos con esos procesos. Así que una vez completado el proceso para s1 para todos los puntos proyectados, vamos a s2 y realizamos pasos iterativos similares. Y luego, encontramos el color en ese punto en particular para s2 y luego realizar la comparación y asignar el color.
Así que nos saltamos aquí todos los demás cálculos y se deja como un ejercicio para que completen los cálculos. Así que esa es la idea detrás del algoritmo de buffer de profundidad o el algoritmo Z-buffer.
Ahora hay un punto. Con este algoritmo en particular, un pixel puede tener un color de superficie. Así que dadas múltiples superficies, un píxel a la vez puede tener sólo uno de esos colores de la superficie. De cualquier posición de visión dada, eso significa que sólo una superficie es visible. Así que esta situación es aceptable si estamos tratando con superficies opacas.
Si las superficies no son opacas, si son transparentes entonces definitivamente, llegamos a ver múltiples superficies que no es posible con este algoritmo de buffer de profundidad en particular. En caso de superficies transparentes, el color del píxel es una combinación del color de la superficie más la contribución de las superficies detrás, y nuestro buffer de profundidad no funcionará en ese caso porque sólo tenemos una ubicación para almacenar el valor de profundidad para cada píxel. Por lo tanto, no podemos almacenar todas las contribuciones de superficie al valor de color.
Hay otro método llamado método A-buffer que se puede utilizar para superar esta limitación en particular. No vamos a entrar en los detalles de este método, usted puede referirse al material, material de lectura. Así que es, en definitiva, lo que podemos hacer con el método buffer de profundidad.
Así que para recapitular, hoy aprendimos sobre la idea básica de la eliminación de la superficie oculta. Aprendimos acerca de diferentes propiedades que se pueden utilizar para reducir los cálculos. Luego nos enteramos de dos grandes clases de algoritmos ocultos de eliminación de la superficie, uno es el método del espacio del objeto, uno es el método del espacio de la imagen. Hemos aprendido sobre un método de espacio de objeto que es el método de eliminación de la cara posterior, y también hemos aprendido sobre un método de espacio de imagen que es el algoritmo de almacenamiento intermedio de profundidad o el algoritmo de almacenamiento intermedio Z.
Cualquier cosa que hayamos discutido hoy puede ser encontrada en este libro, usted puede referirse al Capítulo 8, secciones 8.1 a 8.4. Y si desea obtener más información sobre un algoritmo de almacenamiento intermedio A, también puede comprobar la sección 8.5. Eso es todo para hoy. Gracias y adiós.