Skip to main content

¿Qué es una cámara OpenGL®?

"Cámara OpenGL®" es el nombre dado a la posición virtual de un espectador dentro de una escena Open Graphics Library® (OpenGL®). Se define por la posición del espectador dentro de la escena, y luego la ubicación o dirección en la que mira el espectador. La posición de la cámara en una escena OpenGL® determinará qué parte de una escena se representará en el dispositivo de visualización y en qué ángulo. Se usan dos matrices para describir una cámara OpenGL®: la matriz de vista de modelo y la matriz de proyección, que describen la posición de la cámara y la forma en que se representan los objetos que está mirando, respectivamente. Una cámara puede moverse dentro de una escena para mostrar diferentes áreas o para simular movimiento, aunque en muchos casos es más fácil o más eficiente mover los objetos en una escena en lugar de la cámara.

Al aprender OpenGL®, algunos programadores tienen dificultades para comprender las propiedades relativamente abstractas de una cámara OpenGL®. Esto se debe en gran medida a que algunas transformaciones y otras funciones no funcionan de la misma manera en una cámara que en un objeto OpenGL® estándar. Además, las operaciones complejas con una cámara OpenGL® generalmente requieren dominio de las matemáticas de matriz y una comprensión de la tubería de transformación de OpenGL®. Existen algunas funciones convenientes para admitir las bibliotecas OpenGL®, aunque puede ser difícil confiar únicamente en los kits de herramientas de soporte en aplicaciones más interactivas.

La posición de una cámara OpenGL® se define usando la matriz modelview. La cámara se puede colocar en cualquier lugar dentro de una escena y se puede traducir o girar a lo largo de cualquier eje. En muchas aplicaciones, especialmente las aplicaciones que contienen solo un puñado de objetos, puede ser más fácil aplicar transformaciones inversas a los objetos dentro de una escena para dar la apariencia de movimiento. En esencia, toda la escena se mueve alrededor de una cámara estática en este caso. Para escenas más grandes, puede ser más fácil lidiar con las complejidades de la tubería y las matemáticas de la matriz para mover la cámara libremente, dejando la escena estática.

Los atributos de una cámara OpenGL® son controlados por la matriz de proyección. Para usar la analogía de la cámara, la matriz de proyección puede considerarse como el tipo de lente que se utiliza. La matriz de proyección se modifica con frecuencia para hacer proyecciones ortográficas, que no tienen ajuste de perspectiva, y proyecciones de perspectiva que sí tienen en cuenta la distancia para determinar el tamaño de los objetos. Otros efectos, como una lente ojo de pez, distancia focal o diferentes relaciones de aspecto, se pueden configurar mediante el uso de la matriz de proyección.