Che cos’è una fotocamera OpenGL®?

“Camera OpenGL®” è il nome dato alla posizione virtuale di un visualizzatore all’interno di una scena Open Graphics Library® (OpenGL®). È definito dalla posizione dello spettatore all’interno della scena e quindi dalla posizione o direzione in cui sta guardando. La posizione della telecamera in una scena OpenGL® determinerà quale porzione di una scena verrà renderizzata sul dispositivo di visualizzazione e con quale angolazione. Per descrivere una telecamera OpenGL® vengono utilizzate due matrici: la matrice modelview e la matrice di proiezione, che descrivono rispettivamente la posizione della telecamera e il modo in cui vengono visualizzati gli oggetti che sta guardando. Una telecamera può essere spostata all’interno di una scena per mostrare aree diverse o per simulare il movimento, sebbene in molti casi sia più facile o più efficiente spostare gli oggetti in una scena invece della telecamera.

Quando imparano OpenGL®, alcuni programmatori hanno difficoltà a comprendere le proprietà relativamente astratte di una fotocamera OpenGL®. Ciò è in gran parte dovuto al fatto che alcune trasformazioni e altre funzioni non funzionano nello stesso modo su una fotocamera come su un oggetto OpenGL® standard. Inoltre, le operazioni complesse con una fotocamera OpenGL® di solito richiedono competenza con la matematica delle matrici e la comprensione della pipeline di trasformazione OpenGL®. Ci sono alcune funzioni utili nel supportare le librerie OpenGL®, anche se può essere difficile fare affidamento esclusivamente sui toolkit di supporto in applicazioni più interattive.

La posizione di una telecamera OpenGL® viene definita utilizzando la matrice modelview. La telecamera può essere posizionata ovunque all’interno di una scena e traslata o ruotata lungo qualsiasi asse. In molte applicazioni, in particolare le applicazioni che contengono solo una manciata di oggetti, può essere più semplice applicare trasformazioni inverse agli oggetti all’interno di una scena per dare l’impressione di movimento. In sostanza, in questo caso, l’intera scena si muove attorno a una telecamera statica. Per scene più grandi, può essere più facile gestire le complessità della pipeline e la matematica della matrice per spostare liberamente la telecamera, lasciando la scena statica.

Gli attributi di una fotocamera OpenGL® sono controllati dalla matrice di proiezione. Per usare l’analogia della fotocamera, la matrice di proiezione può essere pensata come il tipo di obiettivo utilizzato. La matrice di proiezione viene frequentemente modificata per creare proiezioni ortogonali, che non hanno alcuna regolazione prospettica, e proiezioni prospettiche che tengono conto della distanza nel determinare le dimensioni degli oggetti. Altri effetti, come un obiettivo fish-eye, la lunghezza focale o diversi rapporti di aspetto, possono essere impostati tramite l’uso della matrice di proiezione.