Domanda

Ho difficoltà a capire come funzionano.Innanzitutto, in un gioco 2D la matrice di proiezione dovrebbe essere impostata come orto con sinistra, destra, alto e basso corrispondenti alla finestra, giusto?Ma quando la finestra si ridimensiona, dovrei semplicemente cambiare glViewport, non la matrice di proiezione?E come mantengo le proporzioni?

Qualcuno potrebbe spiegare lo scopo di queste due cose, nel gioco ortografico 2D, in modo che io possa capirlo meglio?

Sembra che OpenGL stia facendo molte cose inutili in una configurazione 2D.Rasterizzazione e calcolo dei frammenti quando le immagini sono già presenti, conversione delle coordinate del vertice in NDC solo per essere riconvertite in ciò che erano già tramite glViewport.

Inoltre, come mai in OpenGL legacy gratuito dobbiamo creare le nostre matrici, ma non i nostri calcoli come fa glViewport?

Grazie.

È stato utile?

Soluzione

Non confondere ciò che si input per GL e che cosa uscite a.

i parametri da utilizzare per calcolare la matrice Ortho sono quelli che correlano al ingresso . L'uscita di una matrice di proiezione è sempre la [-1: 1] x [-1: 1] x. [-1: 1] cubo

viewport traduce quel cubo ai tuoi rendere coordinate di destinazione. Ecco, questo è in genere quello che si desidera cambiare in base ai nuovi dimensioni della finestra (beh, questo e il framebuffer stesso).

Sì, GL fa un sacco di roba inutile per un percorso di rendering 2D. Si tratta di un'API 3D, dopo tutto ...

finirò col dire che non c'è bisogno di costruire matrici di fare trasformazioni 2D, in modo fino a quando il vertex shader uscite nel cubo ho menzionato in precedenza. Se si desidera scrivere in alto a destra della finestra, si può sempre passare i vostri vertici direttamente come (0,0) (0,1) (1,0) (1,1) e semplicemente di uscita che.

Altri suggerimenti

Non sono sicuro in quale lingua stai utilizzando OpenGL, ma se stai cercando C++ questo sito, http://nehe.gamedev.net/ copre praticamente tutto e include tutorial semplici come "Hello World" fino ai giochi di base e agli effetti 3D.

Spero che sia d'aiuto

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top