Hvad er et OpenGL®-kamera?
"OpenGL®-kamera" er det navn, der gives til den virtuelle placering af en fremviser inden for et Open Graphics Library® (OpenGL®) -scene. Det er defineret af placeringen af seeren i scenen og derefter den placering eller retning, som seeren ser ud i. Kameraets placering i en OpenGL®-scene bestemmer, hvilken del af en scene der skal gengives til displayenheden, og i hvilken vinkel. To matrixer bruges til at beskrive et OpenGL®-kamera: modelview-matrixen og projektionsmatrixen, som beskriver kameraets position og den måde, hvorpå objekterne, det ser ud på, gengives. Et kamera kan flyttes inden for en scene for at vise forskellige områder eller til at simulere bevægelse, skønt det i mange tilfælde er lettere eller mere effektivt at bevæge objekter i en scene i stedet for kameraet.
Når man lærer OpenGL®, har nogle programmerere en vanskelig tid med at forstå de relativt abstrakte egenskaber ved et OpenGL®-kamera. Dette skyldes stort set, at nogle transformationer og andre funktioner ikke fungerer på samme måde på et kamera, som de ville gøre på et standard OpenGL®-objekt. Derudover kræver komplekse operationer med et OpenGL®-kamera normalt færdigheder med matrix-matematik og forståelse af OpenGL®-transformationsrørledningen. Der er nogle bekvemmelighedsfunktioner i understøttelse af OpenGL®-biblioteker, selvom det kan være vanskeligt at stole udelukkende på supportværktøjssæt i mere interaktive applikationer.
Placeringen af et OpenGL®-kamera defineres ved hjælp af modelview-matrixen. Kameraet kan placeres hvor som helst inden for en scene og oversættes eller roteres langs en hvilken som helst akse. I mange applikationer, navnlig applikationer, der kun indeholder en håndfuld objekter, kan det være lettere at anvende omvendte transformationer på objekterne inden for en scene for at give et udseende af bevægelse. I det væsentlige bevæger sig hele scenen omkring et statisk kamera i dette tilfælde. Ved større scener kan det være lettere at håndtere kompleksiteten i rørledningen og matrixmatematikken for at bevæge kameraet frit, hvilket efterlader scenen statisk.
Attributterne til et OpenGL®-kamera styres af projektionsmatrixen. For at bruge kameraanalogien kan projektionsmatrixen betragtes som den type linse, der bruges. Projektionsmatrixen ændres ofte til at lave ortografiske fremspring, som ikke har nogen perspektivjustering, og perspektivfremskrivninger, der tager højde for afstanden i bestemmelsen af objekternes størrelse. Andre effekter, såsom en fisk-øje-linse, brændvidde eller forskellige aspektforhold, kan alle indstilles ved brug af projektionsmatrixen.