Kas yra OpenGL® animacija?

OpenGL® animacija yra bendras terminas, taikomas bet kuriai scenai, kurioje juda objektai, ir atvaizduojama naudojant OpenGL® bibliotekas. Programavimo požiūriu yra keletas metodų, kuriuos galima naudoti kuriant OpenGL® animaciją. Labiau į kompiuterinę grafiką orientuotame rodinyje OpenGL® animacija gali būti bet kokia animuota seka, kuri buvo pateikta naudojant OpenGL®, nesvarbu, ar scena buvo sugeneruota programos šaltinio kode, ar atskiroje modeliavimo programoje. Yra keletas animacijų tipų, kuriuos galima padaryti naudojant OpenGL® ir kitas pagalbines bibliotekas, tačiau dvi dažniausiai naudojamos yra pagrindinių kadrų animacija ir skeleto animacija.

Paprasčiausias OpenGL® animacijos tipas tiesiog apima objekto perkėlimą per sceną. Paprastai tai daroma vienodai keičiant kiekvienos viršūnės koordinačių vietą, lėtai jas perkeliant link norimos padėties. Kameros padėtis scenoje taip pat gali būti pakeista, kad būtų sukurtas animacijos efektas, nors šiuo atveju visa scena išliks statiška. Ši pagrindinė animacijos forma dažnai naudojama dvimatėse (2D) programose, kuriose objektai yra tik vietos rezervavimo vietos, skirtos tekstūroms rodyti.

Pagrindinio kadro animacija yra daug sudėtingesnis procesas. Ši OpenGL® animacijos forma apima modelio, kuris buvo įkeltas į sceną, paėmimą ir laipsniškai perkeliamas į kitą vietą, vadinamą pagrindiniu kadru. Vienas iš pavyzdžių – mojuojančios rankos modelis. Pradinė rankos padėtis lyginama su kitu animacijos modeliu arba pagrindiniu kadru, kuriame ranka yra visiškai ištiesta. Vidurkinis ir laipsniškas rankos judesys sukuria animaciją ir nereikia saugoti rankos padėties kiekvienu žingsniu kelyje.

Kitas OpenGL® animacijos tipas yra žinomas kaip skeleto animacija. Tai apima modelio (dažniausiai artikuliuoto žmogaus ar gyvūno) sukūrimą, o tada modelio viduje sukuriant tam tikros rūšies kaulo struktūrą. Kiekvienas kaulas praktiškai pritvirtintas prie aplinkinių modelio viršūnių. Kaulai daro tam tikrą jėgą arba svorį kiekvienai viršūnei, todėl, kai pats kaulas yra judinamas, aplinkinis modelis sureaguoja ir tinklelis, sudarantis modelio „odą“, deformuojasi. Tokio tipo animacijai sukurti reikia daug laiko, tačiau tinkamai atlikus jos judesiai gali būti labai tikroviški.

OpenGL® animacija priklauso ir nuo modelio, sukurto animuoti, ir nuo to, kaip programa atlieka animaciją. Dažniausiai naudojamas būdas yra pateikti animacijos kadrus į ne ekrano sritį, vadinamą buferiu, prieš pritraukiant juos į matomą ekraną. Tai leidžia nupiešti visą vaizdą, vartotojui jo nežiūrint, jei jis yra per lėtas. Daugelis kompiuterinių programų, naudojančių OpenGL® animaciją, taip pat turi užtikrinti, kad jos išlaikytų pastovų kadrų dažnį, kad būtų išvengta šokinėjančių animacijų, o tai pasiekiama nustatant kiekvieno nupiešto kadro laiką ir laukiant arba pagreitinant atvaizdavimo procesą.