¿Qué es una animación OpenGL®?
La animación OpenGL® es un término general aplicado a cualquier escena que tiene objetos que se mueven dentro de ella y se representa utilizando las bibliotecas OpenGL®. Desde una perspectiva de programación, existen varios métodos que pueden usarse para crear una animación OpenGL®. Dentro de una vista más orientada a gráficos de computadora, una animación OpenGL® puede ser cualquier secuencia animada que se haya renderizado con OpenGL®, ya sea que la escena se haya generado 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 compatibles, 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, traducié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 la escena completa 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 saludando. 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 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 el hueso se mueve, 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 ser dibujada a 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 usan animación OpenGL® también deben asegurarse de mantener una velocidad de fotogramas constante para evitar animaciones de salto, lo que se logra cronometrando cada fotograma dibujado y esperando o acelerando el proceso de renderizado.