Hva er et OpenGL®-kamera?
"OpenGL®-kamera" er navnet som er gitt til den virtuelle posisjonen til en seer i en Open Graphics Library® (OpenGL®) scene. Det defineres av betrakterens plassering i scenen, og deretter plasseringen eller retningen som betrakteren ser seg inn i. Kameraets plassering i en OpenGL®-scene vil avgjøre hvilken del av en scene som skal gjengis til skjermenheten og i hvilken vinkel. To matriser brukes for å beskrive et OpenGL®-kamera: modelview-matrisen og projeksjonsmatrisen, som beskriver kameraets posisjon og hvordan gjenstandene det ser ut til blir gjengitt. Et kamera kan flyttes innenfor en scene for å vise forskjellige områder, eller for å simulere bevegelse, selv om det i mange tilfeller er enklere eller mer effektivt å bevege objektene i en scene i stedet for kameraet.
Når du lærer OpenGL®, har noen programmerere vanskelig for å forstå de relativt abstrakte egenskapene til et OpenGL®-kamera. Dette er i stor grad fordi noen transformasjoner og andre funksjoner ikke fungerer på samme måte på et kamera som de ville gjort på et standard OpenGL®-objekt. I tillegg krever komplekse operasjoner med et OpenGL®-kamera vanligvis ferdigheter med matematikk og forståelse av OpenGL®-transformasjonsrørledningen. Det er noen bekvemmelighetsfunksjoner i å støtte OpenGL®-biblioteker, selv om det kan være vanskelig å stole utelukkende på støtteverktøysettene i mer interaktive applikasjoner.
Posisjonen til et OpenGL®-kamera defineres ved bruk av modelview-matrisen. Kameraet kan plasseres hvor som helst i en scene og oversettes eller roteres langs hvilken som helst akse. I mange applikasjoner, spesielt applikasjoner som bare inneholder en håndfull objekter, kan det være lettere å anvende omvendte transformasjoner på objektene i en scene for å gi utseendet til bevegelse. I hovedsak beveger hele scenen seg rundt et statisk kamera i dette tilfellet. For større scener kan det være lettere å takle kompleksitetene i rørledningen og matematikk for å bevege kameraet fritt, slik at scenen blir statiske.
Attributtene til et OpenGL®-kamera styres av projeksjonsmatrisen. For å bruke kameraanalogien, kan projeksjonsmatrisen bli sett på som den typen objektiv som brukes. Projeksjonsmatrisen blir ofte modifisert for å lage ortografiske projeksjoner, som ikke har noen perspektivjustering, og perspektivfremspring som gjør rede for avstand når det gjelder å bestemme størrelsen på objekter. Andre effekter, som fiskeøyelinse, brennvidde eller forskjellige aspektforhold, kan alle stilles ved bruk av projeksjonsmatrisen.