Co to jest animacja OpenGL®?
Animacja OpenGL® jest ogólnym terminem stosowanym do każdej sceny, w której poruszają się obiekty i jest renderowana przy użyciu bibliotek OpenGL®. Z perspektywy programowania istnieje kilka metod tworzenia animacji OpenGL®. W widoku bardziej zorientowanym na grafikę komputerową animacja OpenGL® może być dowolną sekwencją animowaną renderowaną 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 rodzajów animacji, które można wykonać za pomocą OpenGL® i innych bibliotek pomocniczych, ale dwie z najczęściej używanych to animacja klatek kluczowych i animacja szkieletu.
Najbardziej podstawowy typ animacji OpenGL® polega po prostu na przenoszeniu obiektu przez scenę. Zwykle odbywa się to poprzez zmianę położenia każdej ze współrzędnych wierzchołków, przesuwając je powoli w kierunku pożądanej pozycji. Położenie 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 używana w programach dwuwymiarowych (2D), w których obiekty są tylko symbolami zastępczymi do wyświetlania tekstur.
Animacja klatki kluczowej jest procesem znacznie bardziej złożonym. Ta forma animacji OpenGL® polega na wzięciu modelu, który został załadowany na scenę i stopniowym przesuwaniu go w inne miejsce, zwane klatką kluczową. Jednym z przykładów jest model machania ręką. Początkowa pozycja ręki jest porównywana z innym modelem animacji, w której ręka jest całkowicie wyciągnięta. Uśredniający i przyrostowy ruch ręki tworzy animację bez konieczności zapisywania pozycji ręki w każdym kroku wzdłuż ścieżki.
Inny rodzaj animacji OpenGL® jest znany jako animacja szkieletowa. Polega to na stworzeniu modelu, zazwyczaj przegubowego człowieka lub zwierzęcia, a następnie utworzeniu rodzaju struktury kostnej wewnątrz modelu. Każda z kości jest przymocowana wirtualnie do otaczających wierzchołków modelu. Kości wywierają pewną siłę lub ciężar na każdy wierzchołek, tak że gdy porusza się sama kość, model otaczający reaguje, a siatka tworząca „skórę” modelu odkształca się. Ten rodzaj animacji zajmuje dużo czasu, ale może zapewnić bardzo realistyczne ruchy, jeśli wykonano ją poprawnie.
Animacja OpenGL® opiera się zarówno na modelu stworzonym do animacji, jak i na sposobie, w jaki program wykonuje animację. Najczęściej stosowanym sposobem jest renderowanie klatek animacji do obszaru poza ekranem znanego jako bufor, zanim zostanie przyciągnięty do widocznego ekranu. Pozwala to na narysowanie obrazu w całości bez konieczności oglądania go przez użytkownika, jeśli jest on zbyt wolny. Wiele programów komputerowych, które używają animacji OpenGL®, również musi upewnić się, że utrzymują stałą częstotliwość klatek, aby zapobiec skokowym animacjom, co jest osiągane poprzez synchronizację każdej narysowanej klatki oraz oczekiwanie lub przyspieszenie procesu renderowania.