¿Qué es una animación OpenGL?

La animación OpenGL® es un término general que se aplica a cualquier escena que contenga objetos en movimiento y se renderice utilizando las bibliotecas OpenGL®. Desde una perspectiva de programación, existen varios métodos que se pueden utilizar para crear una animación OpenGL®. Dentro de una vista más orientada a gráficos por computadora, una animación OpenGL® puede ser cualquier secuencia animada que fue renderizada con OpenGL®, ya sea que la escena se generó dentro del código fuente del programa o dentro de un programa de modelado independiente. Hay varios tipos de animaciones que se pueden hacer con OpenGL® y otras bibliotecas de soporte, pero dos de las más utilizadas son la animación de fotogramas clave y la animación esquelética.

El tipo más básico de animación OpenGL® simplemente implica mover un objeto a través de una escena. Esto generalmente se hace cambiando la ubicación de cada una de las coordenadas del vértice por igual, trasladándolas lentamente hacia la posición deseada. La posición de la cámara en una escena también se puede cambiar para crear un efecto de animación, aunque toda la escena permanecerá estática en este caso. Esta forma básica de animación se usa con frecuencia en programas bidimensionales (2D) en los que los objetos son solo marcadores de posición para mostrar texturas.

La animación de fotogramas clave es un proceso mucho más complejo. Esta forma de animación OpenGL® implica tomar un modelo que se ha cargado en la escena y moverlo gradualmente hacia otra posición, llamada fotograma clave. Un ejemplo es un modelo de una mano que agita. La posición inicial de la mano se compara con otro modelo, o fotograma clave, de animación en el que la mano está completamente extendida. El movimiento promedio e incremental de la mano crea la animación sin la necesidad de almacenar la posición de la mano en cada incremento a lo largo del camino.

Otro tipo de animación OpenGL® se conoce como animación esquelética. Esto implica crear un modelo, generalmente de un ser humano o animal articulado, y luego crear un tipo de estructura ósea dentro del modelo. Cada uno de los huesos está unido, virtualmente, a los vértices circundantes del modelo. Los huesos ejercen una cierta fuerza, o peso, en cada vértice de modo que cuando se mueve el hueso en sí, el modelo circundante reacciona y la malla que forma la “piel” del modelo se deforma. Este tipo de animación requiere tiempo para crearse, pero puede proporcionar movimientos muy realistas cuando se realiza correctamente.

Una animación OpenGL® se basa tanto en el modelo creado para ser animado como en la forma en que un programa realiza la animación. La forma más utilizada es renderizar cuadros de animación en un área fuera de la pantalla conocida como búfer antes de que se dibujen en la pantalla visible. Esto permite que la imagen se dibuje en su totalidad sin que el usuario tenga que mirarla si es demasiado lenta. Muchos programas de computadora que utilizan animación OpenGL® también deben asegurarse de mantener una velocidad de fotogramas constante para evitar animaciones con saltos, lo cual se logra cronometrando cada fotograma dibujado y esperando o acelerando el proceso de renderizado.