Clase 8 — Proyección Paralela Oblicua: Caballera, Gabinete y Perspectiva Cónica
Resumen Ejecutivo
Última clase del bloque de OpenGL. Se retoma la proyección desde donde se dejó la semana anterior (proyección paralela ortogonal) y se estudia la proyección paralela oblicua: sus dos ángulos definitorios alfa (ángulo de ataque al plano) y phi (ángulo del segmento de desplazamiento respecto a la horizontal), los casos típicos caballera (alfa=45°) y gabinete (alfa=63,4°), y el volumen de recorte oblicuo resultante. Después de las vacaciones del puente se inicia la segunda parte de la asignatura: visión artificial / OpenCV. ⚠️ EXAMEN: diferencias entre proyección ortogonal y oblicua, significado de alfa y phi, nombres y valores de caballera/gabinete.
Conceptos Clave
- Proyección paralela: Los ejes de proyección son paralelos entre sí. Se divide en ortogonal y oblicua.
- Proyección paralela ortogonal: Los ejes de proyección son paralelos y perpendiculares al plano de proyección (ángulo 90°). Vista la semana pasada. ⚠️ EXAMEN
- Proyección paralela oblicua: Los ejes de proyección son paralelos entre sí pero atacan el plano de proyección con un ángulo oblicuo (no 90°). ⚠️ EXAMEN
- Ángulo alfa: Ángulo con el que los ejes de proyección oblicua atacan al plano de proyección. ⚠️ EXAMEN
- Ángulo phi: Ángulo que forma la horizontal (desde la proyección ortogonal del punto) con el segmento L que une la proyección ortogonal y la proyección oblicua del punto. ⚠️ EXAMEN
- Proyección caballera: alfa = 45°. Los segmentos perpendiculares al plano se representan sin escorzo (con su longitud real). ⚠️ EXAMEN
- Proyección gabinete: alfa = 63,4°. Los segmentos perpendiculares al plano se representan a mitad de su longitud real. ⚠️ EXAMEN
- Valores típicos de phi: 30° y 45°.
- Volumen de recorte en proyección oblicua: Ya no es un ortoedro recto sino un ortoedro oblicuo, coherente con la dirección de proyección. ⚠️ EXAMEN
- glOrtho: Función OpenGL para definir proyección paralela ortogonal (vista la semana pasada). Genera el volumen de recorte recto.
- Visión artificial (OpenCV): Segunda parte de la asignatura. Empieza tras el puente de mayo.
Desarrollo del Temario
1. Avisos de inicio
- Esta es la última clase de OpenGL. Después del puente (primera semana de mayo) empieza la parte de análisis/visión artificial con OpenCV.
- La actividad grupal tiene fecha tentativa del 11 de mayo. Si el grupo ve que no llega, la profesora puede retrasarla una semana; no afecta significativamente al curso.
2. Repaso: tipos de proyección
Proyección
├── Paralela
│ ├── Ortogonal (ejes ⊥ al plano) ← semana pasada
│ └── Oblicua (ejes ∠ alfa al plano) ← hoy
└── Perspectiva (cónica)
En ambas proyecciones paralelas los ejes de proyección son paralelos entre sí. La diferencia es el ángulo con el que esos ejes tocan el plano de proyección.
3. Proyección paralela oblicua
3.1 Definición geométrica
Dado un punto \(P = (X, Y, Z)\) en el sistema de coordenadas de la vista:
- Su proyección ortogonal sobre el plano de proyección (situado en \(Z = Z_{PP}\)) sería \((X, Y, Z_{PP})\).
- Su proyección oblicua se desplaza desde ese punto ortogonal una distancia \(L\) en la dirección determinada por el ángulo phi respecto a la horizontal.
Los dos ángulos que parametrizan la proyección:
| Ángulo | Qué mide |
|---|---|
| alfa | Ángulo de ataque de los ejes de proyección al plano (90° = ortogonal, otro = oblicuo) |
| phi | Ángulo del segmento \(L\) respecto a la horizontal en el plano de proyección |
No hace falta memorizar las fórmulas algebraicas; sí saber qué significan alfa y phi cuando aparezcan en las funciones OpenGL. ⚠️ EXAMEN
3.2 Variantes según alfa
| Nombre | alfa | phi habitual | Característica |
|---|---|---|---|
| Caballera | 45° | 30° o 45° | Profundidad sin escorzo (longitud real) |
| Gabinete | 63,4° | 30° o 45° | Profundidad a la mitad (más realista visualmente) |
Las proyecciones usadas en los cuadernos de dibujo técnico (vista frontal, lateral, superior) son ejemplos de estas proyecciones. ⚠️ EXAMEN
3.3 Volumen de recorte oblicuo
En proyección ortogonal el volumen de recorte es un ortoedro recto (todas las caras forman ángulos rectos entre sí). En proyección oblicua, dado que los ejes de proyección no son perpendiculares al plano, el volumen de recorte se convierte en un ortoedro oblicuo. Los objetos fuera de ese volumen oblicuo no se proyectan. ⚠️ EXAMEN
4. Implementación en OpenGL
4.1 Proyección ortogonal — glOrtho (repaso semana pasada)
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(left, right, bottom, top, near, far);
Define un volumen de recorte recto. Los seis parámetros son los planos de recorte izquierdo, derecho, inferior, superior, cercano y lejano.
4.2 Proyección oblicua — usando la matriz de proyección
OpenGL no tiene una función directa equivalente a glOrtho para la proyección oblicua. Se construye multiplicando la matriz de proyección ortogonal por una matriz de cizallamiento (shear) que incorpora los ángulos alfa y phi.
// Esquema general
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// 1. Definir el volumen de recorte base (como si fuera ortogonal)
glOrtho(left, right, bottom, top, near, far);
// 2. Aplicar la transformación de cizallamiento con alfa y phi
// (mediante glMultMatrixf con la shear matrix correspondiente)
Los valores de alfa y phi que aparecen en los parámetros son exactamente los ángulos estudiados en §3.
4.3 Perspectiva cónica — gluPerspective / glFrustum (adelanto)
Para completar el panorama de proyecciones:
// gluPerspective: más intuitivo
gluPerspective(fovy, aspect, near, far);
// glFrustum: control explícito del frustum
glFrustum(left, right, bottom, top, near, far);
La proyección perspectiva genera el frustum (pirámide truncada) como volumen de recorte. Los objetos más lejanos aparecen más pequeños (convergencia de ejes). Esta proyección no es paralela: los ejes de proyección convergen en el centro de proyección (COP). ⚠️ EXAMEN: diferencia clave con proyección paralela.
5. Transición a visión artificial
Tras las vacaciones del puente de mayo la asignatura cambia de bloque:
- Bloque 1 (terminado hoy): OpenGL — modelado 3D, transformaciones, sistema de coordenadas, iluminación, proyección.
- Bloque 2 (a partir de la vuelta): Análisis de imágenes y visión artificial con OpenCV.
La profesora anticipa que la parte de OpenCV suele gustar mucho por su aplicación práctica (detección de objetos, procesamiento de imágenes en tiempo real, etc.).
Preguntas de Autoevaluación
- ¿En qué se diferencia la proyección paralela oblicua de la ortogonal? ¿Qué tienen en común?
- Define el ángulo alfa en una proyección oblicua. ¿Qué valor toma en la proyección ortogonal?
- Define el ángulo phi. ¿Qué determina geométricamente?
- ¿Qué valores de alfa corresponden a la proyección caballera y a la gabinete? ¿Cuál da longitudes reales en profundidad?
- ¿Cómo cambia el volumen de recorte al pasar de proyección ortogonal a oblicua?
- ¿Qué función OpenGL se usa para proyección ortogonal? ¿Y para perspectiva cónica? ¿Hay una función directa para la oblicua?
- ¿Cuál es la diferencia fundamental entre proyección paralela y proyección perspectiva en términos de los ejes de proyección?
- En el frustum de la proyección perspectiva, ¿por qué los objetos lejanos aparecen más pequeños?
- ¿Qué parte de la asignatura viene después del bloque de OpenGL?