Vad är en OpenGL®-kamera?

”OpenGL®-kamera” är namnet som ges till den virtuella positionen för en tittare i en Open Graphics Library®-scen (OpenGL®). Den definieras av betraktarens position i scenen, och sedan platsen eller riktningen i vilken betraktaren tittar. Kamerans position i en OpenGL®-scen kommer att avgöra vilken del av en scen som ska återges till displayenheten och i vilken vinkel. Två matriser används för att beskriva en OpenGL®-kamera: modelview-matrisen och projektionsmatrisen, som beskriver kamerans position respektive hur objekten som den tittar på renderas. En kamera kan flyttas inom en scen för att visa olika områden eller för att simulera rörelse, även om det i många fall är lättare eller mer effektivt att flytta objekten i en scen istället för kameran.

När de lär sig OpenGL® har vissa programmerare svårt att förstå de relativt abstrakta egenskaperna hos en OpenGL®-kamera. Detta beror till stor del på att vissa transformationer och andra funktioner inte fungerar på samma sätt på en kamera som på ett standard OpenGL®-objekt. Dessutom kräver komplexa operationer med en OpenGL®-kamera vanligtvis kunskaper i matrismatte och en förståelse för OpenGL®-transformationspipeline. Det finns några bekvämlighetsfunktioner för att stödja OpenGL®-bibliotek, även om det kan vara svårt att enbart förlita sig på stödverktygssatserna i mer interaktiva applikationer.

Positionen för en OpenGL®-kamera definieras med hjälp av modellvymatrisen. Kameran kan placeras var som helst inom en scen och översättas eller roteras längs vilken axel som helst. I många applikationer, framför allt applikationer som bara innehåller en handfull objekt, kan det vara lättare att applicera omvända transformationer på objekten inom en scen för att ge sken av rörelse. I huvudsak rör sig hela scenen runt en statisk kamera i det här fallet. För större scener kan det vara lättare att hantera komplexiteten i pipeline och matrismatte för att flytta kameran fritt, vilket lämnar scenen statisk.

Attributen för en OpenGL®-kamera styrs av projektionsmatrisen. För att använda kameraanalogin kan projektionsmatrisen ses som den typ av objektiv som används. Projektionsmatrisen modifieras ofta för att göra ortografiska projektioner, som inte har någon perspektivjustering, och perspektivprojektioner som tar hänsyn till avstånd vid bestämning av storleken på objekt. Andra effekter, såsom ett fisheyeobjektiv, brännvidd eller olika bildförhållanden, kan alla ställas in med hjälp av projektionsmatrisen.