volumen de visualización

Anuncio
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
Descargar