Kas yra OpenGL® kamera?

„OpenGL® kamera“ – tai virtualios žiūrovo padėties Open Graphics Library® (OpenGL®) scenoje pavadinimas. Jį apibrėžia žiūrovo padėtis scenoje, o tada vieta arba kryptis, kuria žiūrintysis žiūri. Kameros padėtis OpenGL® scenoje nulems, kokia scenos dalis ir kokiu kampu bus perkelta į rodymo įrenginį. OpenGL® fotoaparatui apibūdinti naudojamos dvi matricos: modelio vaizdo matrica ir projekcijos matrica, kurios atitinkamai apibūdina kameros padėtį ir objektų, į kuriuos ji žiūri, atvaizdavimo būdą. Fotoaparatą galima perkelti scenoje, kad būtų rodomos skirtingos sritys arba imituojamas judesys, nors daugeliu atvejų yra lengviau arba efektyviau perkelti objektus scenoje, o ne kamerą.

Mokydamiesi OpenGL®, kai kuriems programuotojams sunku suprasti gana abstrakčias OpenGL® kameros savybes. Taip yra daugiausia dėl to, kad kai kurios transformacijos ir kitos funkcijos fotoaparate neveikia taip, kaip standartiniame OpenGL® objekte. Be to, norint atlikti sudėtingas operacijas su OpenGL® kamera, paprastai reikia mokėti dirbti su matricine matematika ir suprasti OpenGL® transformacijos konvejerį. Yra keletas patogumo funkcijų, susijusių su „OpenGL®“ bibliotekų palaikymu, nors gali būti sunku pasikliauti vien palaikymo įrankių rinkiniais interaktyvesnėse programose.

OpenGL® kameros padėtis apibrėžiama naudojant modelio vaizdo matricą. Kamerą galima pastatyti bet kurioje scenos vietoje ir perkelti arba pasukti išilgai bet kurios ašies. Daugelyje programų, ypač programose, kuriose yra tik keletas objektų, gali būti lengviau pritaikyti atvirkštines scenos objektų transformacijas, kad būtų sukurtas judesio vaizdas. Iš esmės visa scena šiuo atveju juda aplink statinę kamerą. Didesnėse scenose gali būti lengviau susidoroti su sudėtingomis konvejerio ir matricos matematika, kad fotoaparatas būtų laisvai judinamas, o scena paliekama statiška.

OpenGL® kameros atributus valdo projekcijos matrica. Naudojant fotoaparato analogiją, projekcijos matrica gali būti laikoma naudojamo objektyvo tipu. Projekcijų matrica dažnai modifikuojama, kad būtų sukurtos ortografinės projekcijos, kuriose nėra perspektyvos koregavimo, ir perspektyvinės projekcijos, kurios atsižvelgia į atstumą nustatant objektų dydį. Kiti efektai, pvz., žuvies akies objektyvas, židinio nuotolis ar skirtingi formato santykiai, gali būti nustatomi naudojant projekcijos matricą.