Está en la página 1de 27

Grficas Computacionales

Proyecciones

ITESM-CEM

Departamento de Ciencias Computacionales

Contenido
Distinguir entre proyecciones en paralelo y en perspectiva El concepto de Clipping Proyecciones en OpenGL

Visualizacin
La visualizacin requiere 3 elementos:

Uno o ms objetos Un plano sobre el que se proyecte la imagen Una cmara que proyecte objetos 3D sobre la superficie del plano

La Cmara
Se requiere un modelo de cmara virtual
Puede ser muy sofisticado
Campo de vista, profundidad de campo, distorsiones, aberracin cromtica

Grficas interactivas (OpenGL):


Modelo hoyo de alfiler
Campo de vista Razn de aspecto Planos de recorte (cercano y lejano)

Posicin & orientacin

Cmo funciona una cmara?

Hoyo de alfiler

Superficie del film

Objecto en 3D

Proyeccin
Proyeccin la transformacin de puntos de un sistema coordenado de n dimensiones a un sistema coordenado en m dimensiones donde m<n Proyecciones de 3-D a 2-D.
El espacio 3-D representa el sistema de coordenadas del mundo. El espacio 2-D es una ventana proyectada a un viewport de la pantalla

Especificaciones
Hay que especificar:
Plano de proyeccin (VRP), un sistema coordenado 2D en donde proyectaremos el mundo 3D Centro de proyeccin (COP), un punto en el espacio que sirve como punto extremo para los proyectores.

Especificaciones

Projectors

Object in 3 space Projected image VRP COP

Tipos de Proyecciones

Paralela (ortogrfica)

Perspectiva

Proyectores
Los proyectores son lneas que:
Convergen en el centro de la proyeccin (perspectiva) o que Nunca se tocan, vase son paralelas (ortogrfica)

Proyeccin en Perspectiva
Los proyectores convergen en el centro de proyeccin

Proyeccin en Perspectiva
Lneas paralelas que no son paralelas al plano de proyeccin no se vern paralelas, sino que se encuentran en algn sitio En el espacio 3-D ese punto estar al infinito y se llamar punto de fuga Lneas paralelas a uno de los ejes mayores van a un punto de fuga llamado punto de fuga de los ejes. Hay un mximo de 3 en tercera dimensin.

Propiedades de la Perspectiva
Disminucin Objetos lejanos del observador aparecen ms pequeos que objetos del mismo tamao cercanos al observador Acortamiento Distancias iguales a lo largo de una lnea no son proyectadas a distancias iguales en el plano Los ngulos se preservan slo en planos paralelos al plano de proyeccin Es realista

La Perspectiva Antigedad: Egipcios

La Perspectiva Antigedad: Egipcios

La Perspectiva Edad Media

Homage of a Simple Man, Giotto, 1295-1300

La Perspectiva Edad Media

Preaching before Pope Honorius III , Giotto, 1295-1300

La Perspectiva Edad Media

Virgin Enthroned with Angels, Cimabue,1300

La Perspectiva Justo antes del Renacimiento

La Anunciacin, Fray Anglico,1449.

La Perspectiva En el Renacimiento

La ltima Cena, Leonardo Da Vinci,1495-98.

La Perspectiva En el Renacimiento

La Escuela de Atenas, Raffaelo Sanzio, 1509

Proyeccin Ortogrfica
Los proyectores son paralelos entre s y ortogonales al plano de proyeccin

Vistas Ortogrficas
Los planos de proyeccin son colocados paralelos a cada uno de los planos formados por 2 ejes

Frente Plano X Y

Arriba Plano X Z

Lado Plano Z Y

Propiedades
Se preservan tanto las distancias como los ngulos Las formas se preservan Pueden utilizarse para medir (planos, edificios, etc) No se aprecia cmo es realmente el objeto porque muchas superficies quedan ocultas No es realista

Ms Vistas Ortogrficas
Las Proyecciones Axonomtricas son proyecciones ortogrficas que no son normales a un eje. Las Proyecciones Isomtricas son proyecciones axonomtricas donde la normal al plano de proyeccin hace ngulos idnticos con cada eje principal.

Perspectiva vs. Proyecciones Paralelas


Una vista ortogrfica o paralela es el lmite de una vista en perspectiva
Segn el centro de proyeccin (para una cmara que utiliza proyecciones en perspectiva) se aleja (mueve hacia atrs hasta el infinito), los proyectores que llegan a los objetos se hacen cada vez ms paralelos, por lo tanto, pasa de ser una vista en perspectiva a una ortogrfica.

Proyeccines Oblcuas
La normal al plano de proyeccin y la direccin de proyeccin forman un ngulo entre si La proyeccin Cavalier
es una proyeccin oblcua donde DOP est a 45 grados del VPN. Lineas paralelas a los ejes se encogen de manera igual. Las paralelas a z aparecen a un ngulo a, dependiente de DOP, muy comunmente a es 45 o 30 DOP VPN

Proyeccines Oblcuas
La normal al plano de proyeccin y la direccin de proyeccin forman un ngulo entre si La proyeccin Cabinet
La normal al plano de proyeccin est a un ngulo de arctan(2) = 63.4 al plano de proyeccin (tpicamente proyectando sobre el plano x,y) . Lneas paralelas al eje que define el plano de proyeccin se encogen de manera igual. Lneas paralelas a la normal al plano de proyeccin se acortan a la mitad

El Concepto de Clipping
Normalmente uno slo est interesado en un volumen limitado de espacio al momento de usar la funcin render Se establecen lmites a la izquierda, a la derecha, arriba, abajo, adelante y atrs

Clipping en la Perspectiva
Cuando se trabaja en modo de perspectiva, este volumen es una pirmide truncada

Clipping Ortogrfico
Cuando se trabaja en modo ortogrfico, este volumen es una caja

Cmo se hace en OpenGL?


Hay 3 aspectos en el proceso de ver con una computadora:
1.Colocar la cmara
Determinar la matriz de transformaciones

2.Seleccionar la lente de la cmara


Determinar la matriz de proyeccin

3.Clipping
Determinar el volumen de visin

Modos de Matrices
Modo Model-View Projection ID de OpenGL GL_MODEL_VIEW GL_PROJECTION Cambia Posiciones de objetos Volumen visto por la cmara

Se utiliza el mismo conjunto de funciones para los dos modos Se debe especificar con qu modo de matrices trabajar invocando a la funcin:
glMatrixMode(GL_MODEL_VIEW); glMatrixMode(GL_PROJECTION);

La Cmara de OpenGL
Inicialmente: La cmara est colocada en el origen Apunta en la direccin negativa del eje Z La proyeccin es ortogonal Se especifica como volumen por default un cubo con lados de longitud 2 centrado en el origen

La Cmara de OpenGL
Valores por default

La Cmara de OpenGL
Los diferentes parmetros de la cmara quedan encapsulados como una matriz de proyeccin en coordenadas homogneas (4x4 ) La matriz de proyeccin premultiplica a la matriz de vista, que a su vez premultiplica a las matrices de modelado, aunque en realidad OpenGL agrupa vista y modelado en la matriz modelview

Vista Ortogonal

Vistas Ortogrficas en 2D y 3D
Para 3-D:
glOrtho (xmin, xmax, ymin, ymax, cerca, lejos) Las distancias cerca y lejos se miden desde la cmara Comandos para vrtices 2D colocan a los vrtices en el plano z=0

Para 2-D:
gluOrtho2D (xmin, xmax, ymin, ymax) En 2D el volumen de corte se convierte en un rectngulo de corte Equivalente a llamar
glOrtho( izq, der, abajo, arriba, -1, 1)

La Perspectiva en OpenGL

La Perspectiva en OpenGL
glFrustum(xmin, xmax, ymin, ymax, cerca, lejos)

Cerca y lejos son distancias medidas desde el centro de proyeccin de la cmara Cerca y lejos deben ser siempre valores positivos Por default el centro de proyeccin est en el origen y la lnea de vista apunta en direccin de la Z negativa

Proyeccin en Perspectiva
Especificar las transformaciones para una proyeccin en perspectiva es similar a elegir la lente de una cmara Esta transformacin determina:
Cul es el campo de vista (ancho, normal, telephoto) Cul es el volumen a ser rendereado (el resto se corta)

Cortes utilizando Frustrum


Frustum una pirmide truncada cuya parte de arriba ha sido cortada por un plano paralelo a su base El frustum define el volumen que se puede ver y es utilizado para dejar objetos fuera del render Los 4 lados del frustum, su tapa y base corresponden a los 6 planos de corte del volumen de visin

Ms Fcil
Una alternativa a glFrustrum es:

Razn (Aspect ratio)


La razn (aspect ratio) est definida simplemente como el ancho entre el alto del plano de corte ms cercano

Campo de Visin
Se especifica el ngulo del campo de visin en el eje Y

Campo de Visin
El campo de visin (fovfield of vision) debe estar en el rango [0.0,180.0] Un campo mayor exagera los efectos de la perspectiva Ejemplos:
Un lente con un ngulo amplio abarca una escena mayor en la fotografa final que una lente telephoto Una lente telephoto permite fotografiar objetos como si estuvieran ms cerca del espectador de lo que realmente estn (zoom in)

glutPerspective
El campo de visin y la razn son suficientes para determinar una pirmide a lo largo de la lnea de visin

glutPerspective
Se necesita especificar de manera adicional que tan cerca y lejos se encuentran los planos de corte para truncar la pirmide Estos ltimos dos valores siempre son positivos

Transformacin de Viewport (Ventana a Viewport)


Ventana
Area del plano de proyeccin, normalmente normalizada con 0,0 al centro

Viewport
Area del dispositivo Ejemplo:
(0, 0) a (640, 480)

Window a Viewport
Si ventana (-1,-1) a (1,1)
Coordenadas en OpenGL

Viewport (0, 0) a (640, 480)


(ojo, stas se llaman coordenadas de Ventana en OpenGL)
width xw = ( xnd + 1) + xlowerleft 2 height yw = ( ynd + 1) + ylowerleft 2

En OpenGL
Object Coordinates

iew elv rix od t M Ma

Ey

o co

na di r

s te

on cti ix e oj tr Pr Ma

lip

co

at in rd

es

ze ni ge o om

ed liz tes a m a or rdin N o co

v de

ic

to ow ort d in p rt s W iew po ate V

w ie i n V or d co

Material elaborado por:


Isaac Rudomn
rudomin@itesm.mx

Erik Milln
emillan@itesm.mx

Ma.Elena Meln
mmelon@itesm.mx

Material complementario y Expositor:


Jos Luis Gordillo
JLGordillo@itesm.mx

También podría gustarte