Volumen De Visualización

   EMBED

Share

Preview only show first 6 pages with water mark for full document please download

Transcript

Visualización - Parte 2 - Dpto. de Informática Fac. Cs. Físico-Mat. y Nat. Universidad Nacional De San Luis Argentina Visualización – Parte 2 Rendering - Generación de la Imagen  Es el proceso por medio del cual se obtiene una representación estática 2D de un mundo abstracto 3D. Imagen Abstracta 3D     Rio 14 Muestreo Modelo de Imagen Procesamiento Frame Buffer 2D Una imagen abstracta se encuentra definida y existe dentro del procesador como una imagen continua. La imagen resultante, en el Frame Buffer es una imagen discreta. El muestreo es el proceso por el cual se convierte una imagen continua en discreta. El hardware de visualización de un sistema gráfico convierte los valores de intensidad discretos en voltajes analógicos continuos aplicados a un dispositivo específico. - Roberto Guerrero @ 2014 2 Visualización – Parte 2 El Concepto de Cámara    Rio 14 La imagen es plasmada en un Plano de Imagen o Plano de Proyección (usualmente en frente de la cámara). Los Proyectores emanan rayos desde el centro de Proyección en el centro del lente (o agujero de la cámara oscura) . La imagen de un punto P de un objeto se encuentra en la intersección del proyector a través de P y el plano de la imagen. - Roberto Guerrero @ 2014 3 Visualización – Parte 2 Recorte de Cámara   Rio 14 El plano de la imagen tiene extensión finita (rectangular). Los objetos son recortados dentro de un rectángulo de recorte o ventana de recorte. - Roberto Guerrero @ 2014 4 Visualización – Parte 2 Volumen de Visualización de la Cámara  ¿Qué es lo que la cámara ve?   Volumen de visualización cónico:    el volumen de visualización contiene todo lo que es visible desde el punto de vista o dirección. aproximación de lo que ven nuestros ojos. posee matemática costosa (uso de cuadráticas) para el recorte de los objetos contra la superficie del cono. Es posible aproximarlo por medio de un cono rectangular o pirámide trunca   Funciona bien con ventanas de visualización rectangulares. Se usan ecuaciones lineales simultáneas para un fácil recorte de los objetos contra los bordes. Ojo Volumen de visualización cónico Cámara sintética Rio 14 - Roberto Guerrero @ 2014 Volumen de visualización aproximado 5 Visualización – Parte 2 Modelo conceptual del Proceso de Visualización 3D (para wireframe)  Implica especificar un observador el cual ve un volumen de visualización del mundo, con una proyección en un plano de proyección (film) y una ventana gráfica. Primitivas de salida del mundo 3D Recorte del Volumen de Visualización  Rio 14 Proyección en el Plano de Visualización Coordenadas del dispositivo 2D Transformación en la ventana del dispositivo 2D para la muestra La ventana gráfica y el plano de proyección pueden tener relaciones de aspecto diferentes   Coordenadas del mundo recortadas Un mappeo de ventana especificará que hacer cuando los aspectos son diferentes. Diferentes estrategias implementan el proceso de visualización. Las estrategias no son necesariamente iguales al modelo conceptual, y los resultados dependen del modelo utilizado. - Roberto Guerrero @ 2014 6 Visualización – Parte 2 Especificación del Observador  El modelo de Cámara Sintética. Para obtener una imagen es necesario conocer algunos datos. Vector Vertical (Up) Vector Hacia (Look) Dirección y Orientación Simula una cámara obscura (pinhole camera) Pano de recorte Trasero (Far) Pano de recorte Delantero (Near) Rio 14 - Roberto Guerrero @ 2014 7 Visualización – Parte 2 La Cámara Sintética General   Cada paquete tiene su propia formulación, más o menos equivalente. Muchas maneras de especificar los parámetros de la cámara PHIGS† Camera, Computer Graphics: Principles and Practice, ch. 6 and 7)        posición de la cámara dirección / orientación campo de visión (relación de aspecto, ángulo de visión, …) profundidad del campo (distancia plano frontal, distancia plano trasero) distancia focal plano de proyección (film). Si no es normal a la dirección de visualización debe generar proyecciones oblicuas. proyección paralela o perspectiva? (cámara cercana a los objetos o lejana en la distancia) † Programmer’s Hierarchical Interactive Graphics System, an ANSI/ISO standard library/API; see also PHIGS+, GKS (2D) Rio 14 - Roberto Guerrero @ 2014 8 Visualización – Parte 2 Posición    Determinar la Posición es análogo a la acción de un fotógrafo que decide el punto panorámico desde el cual tomar la foto. Tres grados de libertad: coordenadas x, y, z en el espacio 3D. El sistema de coordenadas x, y, z es dextrógiro (right-handed): abrir la mano derecha mirando la palma, alinear la palma y los dedos con los ejes de coordenadas de modo que el eje +x es el pulgar, +y el índice, +z el mayor . + + + Rio 14 - Roberto Guerrero @ 2014 9 Visualización – Parte 2 Dirección    La dirección esta especificada por un punto en el espacio 3D hacia donde se debe mirar (look at) y un ángulo de rotación sobre esta dirección. En general la cámara se encuentra localizada en el origen y dirigida hacia un punto arbitrario con una orientación de verticalidad arbitraria. La disposición canónica tiene dirección hacia el eje -z y orientación +y. y x z Up vector Look vector Posición de la Cámara Rio 14 - Roberto Guerrero @ 2014 point to look at (x’, y’, z’) z 10 Visualización – Parte 2 Vectores de Dirección y Orientación (Look & Up)   Una forma mas concreta de establecerlo Vector de Dirección (Look Vector)    indica hacia donde apunta la cámara. 3 grados de libertad, puede ser cualquier vector en el espacio 3D. Vector de Orientación (Up Vector) Look. Por ejemplo: si se está  establece cómo se debe girar la cámara alrededor del vector orientando la cámara en forma horizontal o vertical  Proyección del vector UP: se encuentra en el plano perpendicular al vector permite la generalización de las especificaciones Proyección del vector Up Up vector Look. Esto Look vector Posición Rio 14 - Roberto Guerrero @ 2014 11 Visualización – Parte 2 Campo de Visión  Rio 14 El campo de visión es la parte del mundo que es visible a través de los ojos/cámara en un posición y dirección específica en el espacio. - Roberto Guerrero @ 2014 12 Visualización – Parte 2 Campo de Visión    Rio 14 Los objetos que se encuentran fuera del campo de visión (Field of View) al momento de tomar la foto no son registrados. Usualmente se expresa como la apertura angular del cono de visión (Ángulo de Visión). También comúnmente expresado como la relación entre el ancho y alto del campo (Relación de Aspecto). - Roberto Guerrero @ 2014 13 Visualización – Parte 2 Relación de Aspecto       Similar al tamaño del film utilizado en una cámara. Determina la proporción del ancho y alto de la imagen mostrada en la pantalla. Una ventana cuadrada tiene relación de aspecto 1:1. El formato de película “letterbox” tiene relación de aspecto de 2:1. La televisión NTSC tiene relación de aspecto de 4:3 La televisión HDTV tiene relación de aspecto 16:9. Campo de visión Campo de visión Visión Amplia (corta distancia) Campo de visión Estándar Rio 14 - Roberto Guerrero @ 2014 Visión Amplia (larga distancia) Campo de visión Visión Estrecha 14 Visualización – Parte 2 Ángulo de Visión    Rio 14 Determina la distorsión en perspectiva a reflejar en la pintura, yendo desde 0 (proyección paralela) a mucha (lentes de gran ángulo). En el frustum, se expresan 2 ángulos de visualización: Ancho y Alto. Usualmente se especifica el ángulo de Altura (Height angle), y se calcula el ángulo de Ancho (Width angle) a partir de la fórmula Relación de Aspecto * Ángulo de Altura (Aspect ratio * Height angle). Seleccionar un ángulo de visión es equivalente a cuando un fotógrafo selecciona el tipo de lentes a utilizar (ej,: lentes gran angulares, o telescópicos). - Roberto Guerrero @ 2014 15 Visualización – Parte 2 Ángulo de Visión   Los lentes utilizados para tomas de larga distancia usualmente tienen un ángulo de visión casi paralelo y aunque recortan la profundidad generan muy poca distorsión en la perspectiva. Los lentes de gran angular causan gran distorsión de la perspectiva. Ángulo estrecho Imágenes resultantes Gran angular Rio 14 - Roberto Guerrero @ 2014 16 Visualización – Parte 2 Profundidad del Campo     El volumen de espacio entre los planos de recorte Frontal y Trasero (Front & Back clipping planes) definen que es lo que la cámara visualiza. La posición de los planos esta definida a lo largo del vector Look. Los objetos que se encuentran fuera del volumen de visualización no son dibujados. Los objetos que interceptan el volumen de visualización son recortados. Plano de recorte trasero Plano de recorte frontal descartado Rio 14 - Roberto Guerrero @ 2014 plasmado recortado descartado 17 Visualización – Parte 2 Planos de recorte Frontal (near) y Trasero (far) Razones de uso de un Recorte de Plano Frontal:  No es conveniente dibujar objetos cercanos a la cámara.    podrían bloquear el resto del escenario. los objetos podrían distorsionarse. No se desea dibujar objetos que están detrás de la cámara.   no es lógico ver objetos que se encuentran detrás en caso de utilizar proyección en perspectiva, los objetos aparecerán invertidos como consecuencia de la transformación. Razones de uso de un Recorte de Plano Trasero:  No se desea dibujar objetos que se encuentran muy lejanos.    Rio 14 los objetos muy distantes aparecerán tan pequeños que serán insignificantes visualmente e implicarán tiempo de procesamiento. descartar objetos distantes implica perder detalle, pero se ahorra tiempo de procesamiento. la escena puede estar llena de objetos insignificantes. Por claridad visual es conveniente descartarlos. - Roberto Guerrero @ 2014 18 Visualización – Parte 2 Distancia Focal      Algunos modelos de cámara manejan distancia focal. La distancia focal es la medida del rango de foco ideal; se aproxima el comportamiento de los lentes de cámara real. Los objetos que se encuentran a la distancia focal de la cámara son plasmados en FOCO; los objetos cercanos o lejanos son plasmados borrosos. La distancia focal se combina con los planos de recorte. Sólo los objetos que se encuentran dentro del volumen de visualización son plasmados (borrosos o no). El resto de los objetos son descartados. Distancia Focal Cercano: borroso Rio 14 - Roberto Guerrero @ 2014 Foco perfecto Lejano: borroso 19 Visualización – Parte 2 Qué es lo que el modelo puede o no hacer  Puede crear los siguiente volúmenes:     perspectiva: ángulo de visión positivo. parallel: ángulo de visión 0. El modelo no puede crear volumen de visualización oblicuos. Volumen de visualización oblicuo vs No-oblicuo: Volumen de Visualización No oblicuo: Vector Look perpendicular al plano del film Volumen de Visualización Oblicuo: Vector Look en ángulo con el plano del film Rio 14 - Roberto Guerrero @ 2014 20 Visualización – Parte 2 Especificación del Volumen de Visualización     Rio 14 A partir de la Posición, Look vector, Up vector, Aspect ratio, Height angle, Clipping planes, y opcionalmente Focal length juntos especifican un volumen de visualización truncado. El volumen de visualización truncado es la especificación del espacio delimitado que la cámara puede “ver”. Una visualización 2D de un escenario 3D puede ser computado a partir de un volumen de visualización truncado y luego proyectado en un plano (film). La proyección del volumen debe ser de uno de dos tipos: paralela o perspectiva. - Roberto Guerrero @ 2014 21 Visualización – Parte 2 Volumen de Visualización Truncado para Proyecciones Paralelas Ortogonales   Limitar el volumen de visualización es útil para eliminar objetos extraños. La proyección paralela ortogonal tiene ancho (width) y alto (height) con ángulos 0. Width Far distance Height Near distance Look vector Up vector Position Rio 14 - Roberto Guerrero @ 2014 22 Visualización – Parte 2 Volumen de Visualización Truncado para Proyecciones en Perspectiva (frustum)   Remueve los objetos que se encuentran demasiado lejos de Position. Remueve los objetos que se encuentran demasiado cerca de Position. Width angle = Height angle • Aspect ratio Up vector Look vector Height angle Position Near distance Far distance Rio 14 - Roberto Guerrero @ 2014 23 Visualización – Parte 2 Dónde está el Film? Las cámaras reales tienen un rollo de film que captura las imágenes     Rio 14 El “film” de una cámara sintética es un rectángulo en un plano de film infinito que contiene la imagen de la escena. Dónde se encuentra ubicado el plano de film respecto de las otras partes de la cámara. Cercano al plano frontal?, al plano trasero?.. entre medio? No importa donde se encuentre posicionado el plano del Film. En general suele pensarse que el plano del film se encuentra en el punto del ojo (Posición). - Roberto Guerrero @ 2014 24 Visualización – Parte 2 Visualización 3D ¿Cómo se obtiene una imagen 2D a partir de los parámetros de visualización 3D?  Qué tenemos – especificación de los parámetros 3D de una cámara sintética. – la forma del volumen de visualización y su área de recorte. – matemática de transformaciones.  Preguntas – Qué operaciones permiten realizar una proyección y cómo se realizan estas operaciones en el pipeline? – Cuál es la relación entre la proyección en perspectiva y las matrices? – Qué papel juegan las coordenadas homogéneas en el proceso? – Cómo se conserva la “profundidad” de un punto desde el ojo, de modo que los objetos lejanos sean removidos? – Cómo se realiza el recorte? . Rio 14 - Roberto Guerrero @ 2014 25 Visualización – Parte 2 Especificación de una Visualización Arbitraria  Ubicación del volumen de visualización (parte visible del mundo) mediante la especificación de la posición de la cámara y su dirección/orientación:    Forma del volumen de visualización por medio:     Posición (un punto) Vectores Look & Up Ángulos de visualización horizontal y vertical Planos de recorte frontal y trasero Proyecciones Perspectiva / Paralela Sistemas de Coordenadas   Coordenadas del mundo – espacio 3D dextrógiro (x, y, z). Coordenadas de visualización – sistema de coordenadas 3D dextrógiro de la cámara (u, v, n). Posición arbitraria de la Cámara Rio 14 - Roberto Guerrero @ 2014 Sistema de coordenadas de la Cámara (con n saliendo hacia el observador) 26 Visualización – Parte 2 Matemática – tipos de Transformaciones Lineal  Afines  Proyectivas  Todas las transformaciones convierten líneas en líneas (solo se necesitan los puntos que las definen).  Lineales: - Preservan las líneas paralelas. - El vector [0, 0] es siempre transformado en [0, 0]. Ejemplo: Escalar y Rotar.  Afines: - Preservan las líneas paralelas. - El vector [0, 0] no es siempre transformado en [0, 0]. Ejemplo: Trasladar, Escalar y Rotar (dado que también son afines).  Proyectivas - No necesariamente preservan las líneas paralelas. Ejemplo: una transformación del modelo de la cámara sintética que es proyectiva. Trasladar, Escalar y Rotar son proyectivas . Rio 14 - Roberto Guerrero @ 2014 27 Visualización – Parte 2 Visualización 3D Una visualización arbitraria es compleja   El usuario especifica una visualización arbitraria mediante los parámetros. Problema: convertir una especificación de visualización arbitraria en una imagen 2D de la escena. Es un problema complejo, tanto para el recorte como la proyección  Rio 14 Solución: Reducir a problemas más simples y resolver. - Roberto Guerrero @ 2014 28 Visualización – Parte 2 Visualizacón 3D Para obtener una imagen 2D a partir de parámetros de visualización 3D arbitrarios  Estrategia  Generalizar (y facilitar) el método a partir de utilizar una visualización canónica mediante un volumen de visualización canónico desde una posición de visualización canónica a partir de la posición arbitraria especificada por el usuario. El proceso se puede dividir en tres etapas: 1. Obtener los parámetros de especificación del volumen de visualización. 2. Transformar el volumen de visualización especificado en un volumen canónico. 3. Usando el volumen de visualización canónico, recortar y proyectar la escena generando la imagen 2D. Rio 14 - Roberto Guerrero @ 2014 29 Visualización – Parte 2 Posición de Visualización Canónica  Debe ser una posición genérica que se pueda aplicar a cualquier especificación. Para ello: – posicionarse en el origen del sist. de coordenadas: Position = (0, 0, 0). – dirección hacia las z negativas: Look vector = (0, 0, –1). – orientación vertical (y-axis): Up vector = (0, 1, 0). N Rio 14 - Roberto Guerrero @ 2014 30 Visualización – Parte 2 Volumen de Visualización Canónico El problema de Proyección Paralela  Dada una especificación de visualización paralela, normalizar el volumen de visualización a un cuboide en el origen, y dirección z negativa. Nota: es un cuboide, no un cubo (simplifica las transformaciones aritméticas y recorte) (1, 1, 0) Look Plano trasero z = -1 Plano frontal z = 0 El problema de Proyección Perspectiva  Rio 14 Normalizar la especificación en perspectiva a un frustum unitario en el origen de coordenadas y dirección z negativa, luego transformar en volumen paralelo (cuboide). - Roberto Guerrero @ 2014 31 Visualización – Parte 2 Pasos de Normalización    Descomponer en múltiples pasos. Cada paso esta definido por una matriz de transformación. El producto entre las matrices define una única transformación general, denominada matriz de composición. El caso Paralelo  Pasos: 1) mover el ojo/cámara al origen de coordenadas. 2) transformación de visualización de modo que el sistema (u, v, n) se alinie con (x, y, z). 3) ajustar las escalas del volumen de visualización para que se encuentre entre –1 y 1 para el eje x e y, el plano trasero en z = –1, y el frontal en z = 0. El caso en Perspectiva  Los mismos pasos del caso paralelo, con un paso más: 4) distorsionar la pirámide a un cuboide para obtener la distorsión en perspectiva y alinear los planos trasero y frontal. Rio 14 - Roberto Guerrero @ 2014 32 Visualización – Parte 2 Pipeline de Geometría 3D Espacio del Modelo escalado, traslación, rotación, .... Espacio del Mundo traslación, rotación, .... Rio 14 - Roberto Guerrero @ 2014 33 Visualización – Parte 2 Pipeline de Geometría 3D Espacio del Ojo Posición de Visualización Canónica transformación proyectiva, escalado, y rotación Espacio de Proyección Normalizado Volumen de Visualización Canónico Rio 14 - Roberto Guerrero @ 2014 proyectar, escalado, traslación 34 Visualización – Parte 2 Pipeline de Geometría 3D Espacio del Dispositivo Normalizado escalado Espacio de la imagen (espacio de ventana) (espacio de pantalla) Rio 14 - Roberto Guerrero @ 2014 35 Visualización – Parte 2 Previo a comenzar la Normalización Es necesario obtener los valores de u, v, and n a partir de Look and Up  Es necesario poder lograr que :     el vector Look se encuentre sobre el eje -n. la proyección del vector Up sobre el eje v, perpendicular al plano del eje n. el eje u debe ser perpendicular a los ejes v, n, conformando un sistema dextrógiro. método: encontrar n desde Look, luego u desde n con Up, luego v desde n con u. −Look n= ∥Look∥ Up×n u= ∥Up×n∥ v=n×u Rio 14 - Roberto Guerrero @ 2014 36 Visualización – Parte 2 Pasos de Normalización 1 – Posicionar el ojo en el origen de coordenadas  Definir una matriz que lleve los puntos desde (Posx, Posy, Posz) a (0, 0, 0)  Solución: es la inversa de la traslación asociada a la definición de la posición de visualización (tx, ty, tz) = (–Posx, –Posy, –Posz)  La matriz sería: [ 1 0 T −Position = 0 0 0 1 0 0 0 −Pos x 0 −Pos y 1 −Pos z 0 1 ] y debe ser multiplicada con todos los vértices de los objetos en forma explícita (y la cámara implícitamente) para preservar las relaciones entre cámara y escena. Para todos los vértices p p' = T (− Position ) p Rio 14 - Roberto Guerrero @ 2014 37 Visualización – Parte 2 Situación actual  La posición ahora en el origen del sistema de coordenadas y Look z x Rio 14 - Roberto Guerrero @ 2014 38 Visualización – Parte 2 2- Rotar la vista y alinearlo con el sistema de coordenadas del mundo  La matriz de transformación M de columnas u, v, n puede rotar los ejes x, y, z en los ejes u, v, n.  Aplicando la matriz inversa (transpuesta) de M, MT, a la escena, es decir, matriz con filas u, v, n rotará los ejes u, v, n en los ejes x, y, z.  Cada vértice de la escena deber ser multiplicado por la matriz de composicón. M T T (− Position)  Con esta matriz se ha trasladado y rotado los puntos de modo que Position se encuentra en el origen y los sistemas de coordenadas (u, v, n) y (x, y, z) estan alineados. Situación actual Look Rio 14 - Roberto Guerrero @ 2014 39 Visualización – Parte 2 Antes de proseguir Rio 14  Mas o menos los vértices están en su lugar. Falta acomodar las proporciones del volumen de visualización para que este normalizado. Próxima transformación: escalado.  Ajustar las esquinas del plano de recorte trasero de manera que los valores se encuentren en (+1, +1, –1).  La operación matemática funciona para volúmenes paralelos y en perspectiva.  Si se consideran vectores emanando desde el origen hacia los bordes del plano trasero. Para la proyección en perspectiva, son los bordes del volumen. Para la proyección en paralelo, se encuentran dentro del volumen.  Forzar que los vectores tengan un ángulo de 45 grados con los ejes x e y, por medio de escalar en x e y. - Roberto Guerrero @ 2014 40 Visualización – Parte 2 3.1 – Ajustar la escala de los ejes x e y  Mirando desde arriba hacia abajo: tan     tan   Rio 14 2 2 , 0,−1 Es necesario escalar en x para lograr un ángulo de 90 grados Escalamos en x usando θw 1 =cot 2 θw tan 2    θw   θW   De la misma manera se realiza en y - Roberto Guerrero @ 2014 41 Visualización – Parte 2  La matriz de escalado tendrá esta forma: S xy =  [ cot   0 0 θw 2 0 0 cot 0 0   0 0 0 0 1 0 0 1 θh 2 ] Por consiguiente la matriz de transformación compuesta es: S xy M T T (− Position ) Rio 14 - Roberto Guerrero @ 2014 42 Visualización – Parte 2 3.2 – Ajustar la escala – plano de recorte trasero  La proporciones relativas de los planos del volumen de visualización son correctas. El plano trasero se encuentra en algun lugar con z ≠ –1.  Es necesario estirar el plano llevandolo a z = –1.  La distancia en z desde el ojo hasta el plano se mantiene, aún es far .  Se debe escalar solo en z por consiguiente, para mantener la proporciones se debe hacer uniformemente: [ ] 1 far S xyz   1 0 = far 0 0 Rio 14 - Roberto Guerrero @ 2014 0 0 0 1 far 0 0 0 0 1 far 0 0 1 43 Visualización – Parte 2 Situación actual  La transformación de normalización compuesta final para el volumen de visualización canónico en perspectiva es S xyz   Rio 14   1 T S xy M T −Position  far Plano trasero en z = –1. Plano frontal en z = –k (notar k > 0) - Roberto Guerrero @ 2014 44 Visualización – Parte 2 Situación actual – Ejemplo de punto  Tomemos un punto en particular sobre el plano de recorte frontal y el vector Look: p=Position near  Look Position Aplicando la transformación T compuesta p ' = M T (− Position) p luego p ' =S xyz 1 T S xy M T (−Position ) p far ( ) ' el punto se ha movido a la ubicación p = ( 0 sobre el eje -z, 0 −k ) Position El escalado de xy no tiene efecto en p y el escalado en xyz se cambia a − near de manera que k = near far far ( ) Como far = –1, luego -near/far es simplemente near Rio 14 - Roberto Guerrero @ 2014 Look 45 Visualización – Parte 2 4 – Distorción de la pirámide a un cuboide    Se debe transformar los puntos en el volumen de visualización en perspectiva entre (–k , –1) en el volumen de visualización paralelo. Algunos procesos se facilitan si el volumen se coloca con valores de z entre [0 1], y no [–1 0]. De modo que la transformación coloca la escena en el rango z = 0 a z = 1. La matriz que realiza esto es con (0< k <1 …) esto causa que x e y sean “perspectivizados”, con los puntos cercanos al plano frontal siendo escalados. D= [ 1 0 0 1 0 0 0 0 0 0 1 k−1 −1 0 0 k k−1 0 ] Nota: no es 1! Rio 14 - Roberto Guerrero @ 2014 46 Visualización – Parte 2 El resultado  Transformación final: ' p =DS xyz    1 T S xy M T −Position  p far Notar que una vez que los parámetros de visualización (Position, Up vector, Look vector, Height angle, Aspect ratio, Near, y Far) son conocidos, la matrices D , S xyz   1 T , S xy , M ,T −Position  far Pueden ser computadas y multiplicadas todas juntas, generando una única matriz que se aplica a todos los puntos de todos los objetos y transportarlos desde el espacio del mundo al volumen de visualización paralelo. Rio 14 - Roberto Guerrero @ 2014 47 Visualización – Parte 2 Recorte    Teniendo los elementos en el volumen canónico, resta por recortar y proyectarlos en el plano del film. Se debe recortar el escenario acorde con los lados del volumen de visualización. El volumen se encuentra normalizado, por consiguiente se extiende desde –1 a 1 para x e y y desde 0 a 1 para z. (-1, 1, 1) (-1, 1, 0) (1, 1, 1) (-1, -1, 1) z y (1, 1, 0) (-1, -1, 0) x (1, -1, 1) Ubicación del plano trasero   Rio 14 Ubicación del plano frontal (1, -1, 0) Nota: versión rotada (en z) del volumen de visualización canónico. Recorte es fácil! Evaluar las componentes x e y de los puntos contra +/-1. Evaluar la componente z contra 0 y 1. - Roberto Guerrero @ 2014 48 Visualización – Parte 2 Recorte  Los vértices que caen dentro de los valores son guardados y los otros recortados a los valores de intersección con el plano del volumen. x = (1 − t ) ⋅ x0 + t ⋅ x1 0 ≤ t ≤1 y = (1 − t ) ⋅ y0 + t ⋅ y1 (x1, y1, z1 ) t=1 z = (1 − t ) ⋅ z0 + t ⋅ z1 t=0  En 2D: y (1, 1) x=1 x (x0, y0 ) (-1, -1) Rio 14 (x0, y0, z0 ) - Roberto Guerrero @ 2014 (x1, y1 ) 1 = (1 − t ) x0 + tx1 1 − x0 = −tx0 + tx1 1 − x0 = t ( x1 − x0 ) t= 1 − x0 x1 − x0 49 Visualización – Parte 2 Proyección   Se puede generar un plasmado simplemente descartando el valor z para proyectarlo sobre el plano xy. Un punto (x,y,z) donde − 1 ≤ x, y ≤ 1, 0 ≤ z ≤ 1 se convierte en el punto (x´, y´) en el espacio de pantalla (asumiendo que se usa toda la pantalla) con ' por medio de - ignorar z - x '  512  x 1 1 - y'  512 y1   Rio 14 ' 0≤x , y 1024 Si la visualización se encuentra dentro de una ventana, será necesario escalar y trasladar los valores a las coordenadas de ventana. Nota: por ser proyección paralela se pude hacer la proyección sobre cualquier plano de recorte, frontal o trasero, la imagen será siempre la misma . - Roberto Guerrero @ 2014 50 Visualización – Parte 2 Resumen   Rio 14 En resume, el problema completo se puede resumir en la multiplicación de todos los vértices con una matriz de composición, luego recorte y luego una multiplicación final para generar las coordenadas de pantalla. La matriz de composición final será la suma de todas las transformaciones de modelado, junto con las transformaciones de normalización aplicadas al sistema de coordenadas del mundo - Roberto Guerrero @ 2014 51 Visualización – Parte 2 Rio 14 - Roberto Guerrero @ 2014 52