Co to jest animacja OpenGL®?

Animacja OpenGL® to ogólny termin stosowany do każdej sceny, w której poruszają się obiekty, i jest renderowana przy użyciu bibliotek OpenGL®. Z perspektywy programowania istnieje kilka metod, których można użyć do stworzenia animacji OpenGL®. W widoku bardziej zorientowanym na grafikę komputerową animacją OpenGL® może być dowolna animowana sekwencja renderowana za pomocą OpenGL®, niezależnie od tego, czy scena została wygenerowana w kodzie źródłowym programu, czy w samodzielnym programie do modelowania. Istnieje kilka typów animacji, które można wykonać za pomocą OpenGL® i innych bibliotek pomocniczych, ale dwa z najczęściej używanych to animacja klatek kluczowych i animacja szkieletowa.

Najbardziej podstawowy typ animacji OpenGL® polega po prostu na przesuwaniu obiektu przez scenę. Odbywa się to zwykle poprzez zmianę położenia każdego ze współrzędnych wierzchołków w równym stopniu, powoli przesuwając je w kierunku żądanej pozycji. Pozycję kamery w scenie można również zmienić, aby uzyskać efekt animacji, chociaż w tym przypadku cała scena pozostanie statyczna. Ta podstawowa forma animacji jest często wykorzystywana w programach dwuwymiarowych (2D), w których obiekty są jedynie miejscami do wyświetlania tekstur.

Animacja klatek kluczowych to znacznie bardziej złożony proces. Ta forma animacji OpenGL® polega na pobieraniu modelu, który został załadowany do sceny i stopniowym przesuwaniu go w kierunku innej pozycji, zwanej klatką kluczową. Jednym z przykładów jest model machania ręką. Początkowa pozycja ręki jest porównywana z innym modelem lub klatką kluczową animacji, w której ręka jest w pełni wyprostowana. Uśrednianie i przyrostowy ruch ręki tworzy animację bez konieczności zapisywania pozycji ręki w każdym kroku na ścieżce.

Innym rodzajem animacji OpenGL® jest animacja szkieletowa. Wiąże się to z utworzeniem modelu, zwykle przegubowego człowieka lub zwierzęcia, a następnie stworzeniem rodzaju struktury kostnej wewnątrz modelu. Każda z kości jest przyczepiona wirtualnie do otaczających wierzchołków modelu. Kości wywierają pewną siłę lub ciężar na każdy wierzchołek, tak że gdy sama kość jest poruszana, otaczający model reaguje, a siatka tworząca „skórę” modelu ulega deformacji. Ten rodzaj animacji wymaga czasu, ale może zapewnić bardzo realistyczne ruchy, jeśli zostanie wykonane poprawnie.

Animacja OpenGL® opiera się zarówno na modelu stworzonym do animacji, jak i na sposobie, w jaki program wykonuje animację. Najczęściej używanym sposobem jest renderowanie ramek animacji do obszaru poza ekranem zwanego buforem, zanim zostaną narysowane na widocznym ekranie. Pozwala to na narysowanie obrazu w całości bez konieczności oglądania go przez użytkownika, jeśli jest zbyt wolny. Wiele programów komputerowych, które używają animacji OpenGL®, musi również upewnić się, że utrzymują stałą liczbę klatek na sekundę, aby zapobiec przeskakiwaniu animacji, co jest osiągane przez synchronizację każdej rysowanej klatki i czekanie lub przyspieszanie procesu renderowania.