Manipulación del Espacio: ransfoTrmaciones y...

51

Transcript of Manipulación del Espacio: ransfoTrmaciones y...

Page 1: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Manipulación del Espacio: Transformaciones y Proyecciones

Facultad de Cs. de la Computación

Juan Carlos Conde Ramírez

Computer Graphics

Page 2: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Contenido

1 Introducción

2 Transformaciones

3 Concatenación

4 Proyecciones

5 Conclusiones

1 / 50

Page 3: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Contenido

1 Introducción

2 Transformaciones

3 Concatenación

4 Proyecciones

5 Conclusiones

2 / 50

Page 4: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Objetivo

El objetivo de la computación grá�ca es crear una imagen bidimensional de unaescena 3D.

Tareas involucradas:

I Colocación de los objetos en la escena y animación de los mismos.

I De�nición de un punto de vista y una forma de visualización (volumen devisualización).

I Mapeo de coordenadas 3D en coordenadas 2D.

Se llevan a cabo mediante procesos de transformación y proyección.

3 / 50

Page 5: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

4 / 50

Page 6: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Contenido

1 Introducción

2 Transformaciones

3 Concatenación

4 Proyecciones

5 Conclusiones

5 / 50

Page 7: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

¾Qué son? ¾Para qué sirven?

De�nición: modi�caciones aplicadas a los elementos que componen una escenatridimensional.

Utilidades:

I Alteración del contenido de una escena o de sus elementos (modelo)

I Cambio de la posición desde la que se percibe una escena (observador)

I Representación 2D de una imagen 3D (proyección y vista)

Aplicadas a un elemento del modelo, producen una modi�cación de los puntosque de�nen dicho elemento. Para ello se utilizan operaciones matriciales.

6 / 50

Page 8: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Consideraciones

Coordenadas de la vista (oculares):

I Punto desde el cual el observador percibe el contenido de una escena, sinconsiderar las transformaciones.

I Se identi�can con las posiciones absolutas de un objeto en la pantalla.

Trasformación = modi�cación del sistema de coordenadas

7 / 50

Page 9: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Sistema de Coordenadas

Las modi�caciones del sistema de coordenadas se recogen en una matriz especial:matriz del modelador

8 / 50

Page 10: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Tipo de Transformaciones

Del observador:

I Utilizadas para de�nir el punto de vista

Del modelo

I Rotaciones, traslaciones, escalado, re�exiones...

I Sus efectos se recogen en una matriz especial (matriz del modelador)

De la proyección

I De�nición de la forma de visualización (ortogonal o perspectiva)

De la vista

I Para eliminar objetos que quedan fuera del volumen de visualización ygenerar imágenes 2D.

9 / 50

Page 11: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Proceso 2D → 3D

10 / 50

Page 12: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Transformaciones: características

I Tienen un efecto acumulador

I Necesario mantener �estados visitados�

I Se utiliza la matriz identidad para volver al inicio

void glLoadIdentity(void);

I Pilas de matrices:permiten mayor �exibilidad

void glPushMatrix(void);

void glPopMatrix(void);

11 / 50

Page 13: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Translación + Rotación VS Rotación + Traslación

12 / 50

Page 14: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Transformaciones del MODELO I

Rotación: operación de giro de elementos alrededor de ejes arbitrarios.

Operación matricial:r ′xr ′yr ′z1

=

cos θ −sin θ 0 0sin θ cos θ 0 00 0 1 00 0 0 1

rxryrz1

Ángulos positivos: giros anti-horarios

Primitivas OpenGL:void glRotated(GLdouble angulo, GLdoublex, GLdoubley, GLdoublez);

void glRotatef(GLfloat angulo, GLfloatx, Glfloaty, GLfloatz);

13 / 50

Page 15: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Transformaciones del MODELO II

Traslación: movimiento de un elemento a lo largo de un eje de coordenadas.

Operación matricial: r ′xr ′yr ′z1

=

1 0 0 tx0 1 0 ty0 0 1 tz0 0 0 1

rxryrz1

Primitivas OpenGL:void glTranslated(GLdoublex, GLdoubley, GLdoublez);

void glTranslatef(GLfloatx, GLfloaty, GLfloatz);

14 / 50

Page 16: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Transformaciones del MODELO III

Escalamiento: alteración de las dimensiones de un elemento.

Operación matricial: r ′xr ′yr ′z1

=

sx 0 0 00 sy 0 00 0 sz 00 0 0 1

rxryrz1

Dos tipos: uniforme (3 ejes simultáneos), no uniforme (cualquier eje)

Primitivas OpenGL:void glScaled(GLdoublex, GLdoubley, GLdoublez);

void glScalef(GLfloatx, Glfloaty, GLfloatz);

15 / 50

Page 17: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Actividad 1

Objetivo: Aplicar las transformaciones estudiadas en clase y comprobar como funcionan en lapráctica

Instrucciones:

1. Traza en una hoja cuadriculad un plano coordenado en 2 Dimensiones

2. Asume que el Eje Z existe pero es siempre 0

3. Dibuja un triángulo no muy grande donde cada uno de sus vértices este sobre lasintersecciones de la cuadrícula

4. Considera el valor de cada cuadro como una unidad

5. Determina las coordenadas de cada uno de sus vértices

Ahora determina lo siguiente:

1. Una magnitud ∆x o ∆y (congruente con las medidas de tu plano) para trasladar eltriángulo a otra posición del plano.

2. Un ángulo entre 1◦ y 180◦ para girar el triángulo en sentido anti-horario sobre el eje Z.

3. Un factor de tamaño que esté en [0,1] (es decir entre 0% y 100%) para determinar elescalamiento del triángulo.

Aplica por separado las 3 transformaciones anteriores a cada uno de los vértices y re-dibuja enel mismo plano de cada transformación la nueva �gura.

16 / 50

Page 18: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Actividad 2

Usando las coordenadas del origen (0, 0, 0) como centro o centroide del triángulo anteriorrealiza lo siguiente:

1. Ubicar las nuevas coordenadas en el plano.

2. Aplica una rotación de 45◦ sobre el eje Z.

3. Al nuevo triángulo aplica una traslación de más de 3 unidades.

4. Invierte los pasos anteriores y observa el resultado.

Contesta las siguientes preguntas:

I ¾Qué transformación debe realizarse para hacer más grande a una �gura?

I ¾Qué factor de escalamiento debe utilizarse si se desea modi�car el tamaño de una �guraexactamente al doble?

I ¾Qué observaciones puede hacer con respecto al orden de las transformacionesTraslación + Rotación contra Rotación + Traslación?

17 / 50

Page 19: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Contenido

1 Introducción

2 Transformaciones

3 Concatenación

4 Proyecciones

5 Conclusiones

18 / 50

Page 20: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Concatenación de Transformaciones

Deseamos ahora aplicar múltiples transformaciones de forma simultánea a undeterminado objeto geométrico:

I Para hacerlo tenemos que concatenar una detrás de otra, todas las matricespor las que sus vértices deben multiplicarse.

I La multiplicación de matrices NO es conmutativa. El orden de las matricesSI afecta el resultado �nal.

19 / 50

Page 21: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Convenciones de Multiplicación

Existen dos convenciones en cuanto al uso de transformaciones geométricas:

1. En gra�cación, se post-multiplican las matrices. Los puntos se toman comovectores columna que se multiplican a las matrices por la derecha. Ademásel orden de las transformaciones, de primera a última, es de derecha aizquierda.

2. En robótica, se pre-multiplican las matrices. Los puntos se toman comovectores �la que se multiplican a las matrices por la izquierda, las matrices seordenan de izquierda a derecha de acuerdo al orden de las transformaciones.

20 / 50

Page 22: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Convenciones de Multiplicación

Donde Pf es el punto �nal transformado, Pi el inicial, T1 la primera transfor-mación, T2 la segunda, etc.

En ambos casos tenemos que multiplicar las matrices de izquierda a derecha.

21 / 50

Page 23: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Implementación

En OpenGL toda la geometría se ve afectada por la CTM (Current Transforma-

tion Matrix) o matriz de transformación actual.

Esta matriz guarda la información sobre todas las matrices que se han ido acu-mulando.

Cualquier vértice que pase por el pipeline, será multiplicado por esta matriz yconsecuentemente transformado.

22 / 50

Page 24: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Implementación

En OpenGL, la CTM se compone de dos matrices:

I la matriz Modelview (matriz de transformación)

I la matriz Projection (matriz de proyección)

Ambas se concatenan y de su producto se crea la CTM para el pipeline quecontrola OpenGL.

23 / 50

Page 25: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Implementación

Lo primero que debe hacerse es inicializar la matriz. Esto se hace cargando lamatriz identidad (elemento neutro de la multiplicación de matrices).

Con esto aseguramos de �limpiarla� por completo antes de añadir transforma-ciones. De no hacerlo se corre el riesgo de añadir transformaciones a otras yaexistentes (resultados indeseados).

Es decir:

1. glMatrixMode(GL_MODELVIEW) activa la matriz de transformación.

2. glLoadIdentity() cargamos la matriz identidad.

24 / 50

Page 26: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Implementación

Después de esto, podemos acumular transformaciones sucesivas mediante lasfunciones:

I Escalar según sean los factores sx , sy y sz .

I Trasladar según los factores tx , ty y tz .

I Rotar el ángulo según el eje que de�ne el vector [vx , vy , vz].

A medida que vamos de�niendo transformaciones, se acumulan post-multiplicandoen la matriz de transformación.

25 / 50

Page 27: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Implementación

En OpenGL, la regla es que la matriz de transformación que se ha de�nido alúltimo será la primera en aplicarse a la geometría.

La matriz de transformación debe entenderse como una pila. Cada transforma-ción que añadimos entra a la pila como la última y por lo tanto al salir será laprimera.

Podemos salvar el estado de la pila en cualquier momento para recuperarlodespués.

26 / 50

Page 28: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Concepto de pila o �stack�

I glPushMatrix() salva el estado actual de la matriz

I glPopMatrix() recupera el estado de la matriz

Esto nos servirá en el caso de que tengamos que aplicar algunas transformacionesa una pequeña parte de la geometría. El resto no se debe ver afectado por esoscambios.

27 / 50

Page 29: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Concepto de pila o �stack�

Lo que se hace es:

1. De�nir las transformaciones generales que afectan a todos.

2. Entonces se salva la matriz y se añaden otras.

Es posible dibujar una geometría �especial� e inmediatamente después serecupera la matriz.

Así podemos dibujar el resto de la geometría, ya que no se verá afectada porlas transformaciones que hayamos de�nido entre el Push y el Pop.

28 / 50

Page 30: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Ejemplo Código/Matriz

29 / 50

Page 31: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Contenido

1 Introducción

2 Transformaciones

3 Concatenación

4 Proyecciones

5 Conclusiones

30 / 50

Page 32: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

De�nición

Los objetos en 3D se proyectan en un plano de visión 2D para representarlos enpantalla.

Métodos para generar vistas de objetos 3D:

I Proyección Ortográ�ca

I Proyección Perspectiva (cónica)

31 / 50

Page 33: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Proyección Ortogonal I

I De�ne un volumen de visualización rectangular, cuyo tamaño no cambiade un extremo a otro.

I Se proyectan puntos de la super�cie de los objetos a lo largo de líneasparalelas sobre el plano de despliegue.

I Se especi�ca a partir de un vector que de�ne la dirección de las líneas deproyección.

32 / 50

Page 34: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Proyección Ortogonal II

I Representa dimensiones exactas de los objetos → representación POCOrealista del aspecto del objeto 3D.

I Utilizada para representar objetos a partir de vistas que conservan las pro-porciones relativas → diseños arquitectónicos y de ingeniería.

I Tipos de proyecciones paralelas: Ortogonal y Oblicua.

33 / 50

Page 35: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Proyección Ortogonal III

I La Proyección paralela ortogonal es perpendicular al plano de visión:

xp = x , yp = y

I Utilizadas para generar las vistas frontal, lateral (elevaciones) y superior(vista de planta) de los objetos.

34 / 50

Page 36: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Proyección ParalelaORTOGONAL

Axonométrica: Se obtiene cuando el plano de proyección no es paralelo a ningunode los tres ejes principales del objeto.

Isométrica: Se obtiene cuando los tres ángulos que forman los ejes axonométricosson iguales.

35 / 50

Page 37: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Proyección ParalelaOBLICUA

Matriz de proyección paralela:

1 0 L1 cosφ 00 1 L1 sinφ 00 0 1 00 0 0 1

Proyección no perpendicular al plano de visión:

xp = x + z(L1 cosφ)yp = y + z(L1 sinφ)

36 / 50

Page 38: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Proyección ParalelaOBLICUA

Proyección caballera (α = 45◦): todas las líneas perpendiculares al plano deproyección se proyectan sin alterar su longitud.

Proyección de gabinete (α ≈ 63◦): las líneas perpendiculares a la super�cie devista se proyectan alterando su longitud a la mitad.

37 / 50

Page 39: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Proyección Paralela: ORTOGONAL VS OBLICUA

38 / 50

Page 40: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Primitivas OpenGLProyecciones Ortográ�cas

void glOrtho(GLdouble izquierda, GLdouble derecha, GLdouble abajo,

GLdouble arriba, GLdouble cerca, GLdouble lejos)

Sus argumentos de�nen la ventana de visualización y los planos de corte, cercanoy lejano. Si el objeto sobrepasa dichos planos, se recortará automáticamente.

void gluOrtho2D(GLdouble izquierda, GLdouble derecha, GLdouble abajo,

GLdouble arriba)

Proyecta una imagen 2D a una pantalla bidimensional. Todas las coordenadas zson 0.

39 / 50

Page 41: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Proyección en Perspectiva I

I Representación realista del aspecto del objeto 3D → NO conserva lasproporciones relativas de los objetos.

I Utilizada en animaciones y aplicaciones que requieren algún grado derealismo.

I En objetos del mismo tamaño, la proyección de los más próximos al planoes mayor que la de los más alejados.

40 / 50

Page 42: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Proyección en Perspectiva II

I Se proyectan los puntos del objeto hacia el plano de despliegue a lo largode líneas que convergen en un punto (centro de proyección)

I La vista que se proyecta de un objeto se de�ne calculando la intersecciónde las líneas de proyección con el plano de visión.

41 / 50

Page 43: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Proyección en Perspectiva III

Punto de fuga: punto en el que converge un conjunto de líneas paralelas que seproyecta. (Parece que convergen hacia un punto lejano en el fondo).

Punto de fuga principal: líneas paralelas a uno de los ejes principales de unobjeto.

Las proyecciones en perspectiva se clasi�can como de uno, dos o tres puntos defuga principales.

42 / 50

Page 44: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Proyección en Perspectiva IV

I El volumen de visualización es un frustum de una pirámide.

43 / 50

Page 45: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Primitivas OpenGLProyecciones en Perspectiva

void glFrustum(GLdouble izquierda, GLdouble derecha, GLdouble abajo,

GLdouble arriba, GLdouble cerca, GLdouble lejos)

Como argumentos se especi�can las coordenadas y distancias entre los planosde trabajo de corte frontal y posterior. El volumen de visualización se usa pararecortar los objetos que se encuentran fuera de él.

void gluPerspective(GLdouble angulo, GLdoubleaspecto,

GLdouble zfrontal, GLdouble zPosterior)

Como argumentos se especi�ca el ángulo de apertura, la relación entre el largoy ancho del plano cercano y la distancia entre el punto de visión y los planoscercano y alejado.

44 / 50

Page 46: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Planos Adicionales de Recorte

I Para restringir más el volumen de visualización, se pueden de�nir 6 planosadicionales de recorte.

I Volumen de vista resultante: intersección entre el volumen de vista inicialy cada uno de los espacios intermedios de�nidos por los planos de recorte.

45 / 50

Page 47: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Primitivas de OpenGLPlanos de Recorte

glClipPlane(GLenum numero_plano, const GLdouble *ecuacion) Como ar-

gumentos se especi�can la matriz con las coordenadas que de�nen el plano derecorte y un número entero que indica qué plano de recorte se está de�niendo.

glEnable(GL_CLIP_PLANEi)

Habilita el plano de recorte i.

glDisable(GL_CLIP_PLANEi)

Deshabilita el plano de recorte i.

glGetIntegerv(GL_MAX_CLIP_PLANES)

Determina el número de planos de recorte que se soportan.

46 / 50

Page 48: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Transformaciones y Proyecciones

TAREA

PROGRAMA. Aplicar transformaciones básicas utilizando el API de OpenGL.El programa debe cubrir los siguientes puntos:

1. Hacer una copia de la práctica No. 2 para reutilizar su código.

2. Borrar toda la primera sección correspondiente a "OPERACIONES CONLA MATRIZ DE TRANSFORMACIÓN"

3. Borrar las variables y funciones relacionadas con la sección borrada de lafunción displayFcn

4. Utilizar glTranslatef, glRotatef o glScalef para aplicar las transformacionescorrespondientes

5. Utiliza glPushMatrix y glPopMatrix si es necesario.

SUGERENCIA: Trazar la triángulo original tomando a la coordenada (0, 0, 0)como centroide, posteriormente aplica la transformación correspondiente paramoverlo y también a sus copias.

47 / 50

Page 49: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Contenido

1 Introducción

2 Transformaciones

3 Concatenación

4 Proyecciones

5 Conclusiones

48 / 50

Page 50: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

Transformaciones → Proyecciones

I OpenGL simpli�ca el proceso de transformación de elementoscon ayuda de:

1. Matrices que �almacenan� la posición del sistema de coordenadas.

2. Primitivas de alto nivel que abstraen al usuario de complejasoperaciones matriciales.

3. Estructuras como pilas de matrices para controlar los estadospor los que pasa el sistema de coordenadas.

I Es relativamente fácil crear varias vistas o proyecciones de unaescena en función de las necesidades del usuario

49 / 50

Page 51: Manipulación del Espacio: ransfoTrmaciones y …climate.cs.buap.mx/CondeJC/cursos/Material/Graficacion_/Notas/03... · tion Matrix ) o matriz de transformación actual . ... ción

Introducción Transformaciones Concatenación Proyecciones Conclusiones

�El éxito no es el �nal, el fracaso no es la ruina, elcoraje de continuar es lo que cuenta�

[Winston Churchill]

Juan Carlos Conde Ramí[email protected]

50 / 50