Come usare i moderni OpenGL per i giochi 2D?


9

Ho trovato una pletora di tutorial "moderni" OpenGL (3.0+) per il 3D, ma non ho trovato quasi nulla quando cercavo informazioni su come usarlo per lo sviluppo di giochi 2D. Come posso iniziare a utilizzare OpenGL per 2D gamedev?

In particolare, sono interessato a ottenere risposte ai seguenti argomenti:

  • Come devo impostare le mie varie matrici per la proiezione ortografica?
  • Gli shader sono tanto usati nelle applicazioni 2D come in quelle 3D? In tal caso, qual è il loro scopo nell'impostazione 2D?
  • Come devo gestire l'enorme numero di trame ovviamente necessarie per un gioco 2D?

Mi scuso per la domanda relativamente ampia, ma ho passato molto tempo a cercare e ho trovato pochissime informazioni utili che si applicano al moderno OpenGL.

Risposte:


11
  • Come devo impostare le mie varie matrici per la proiezione ortografica?

Il tuo obiettivo è 2D, giusto? Quindi non hai bisogno di alcuna proiezione. La proiezione è l'atto di condensare un mondo 3D su un piano 2D. Imposta lo shader in modo che per impostazione predefinita sia impostata la coordinata Z di ogni vertice 0.0e dovresti essere impostato.

Tuttavia, potresti utilizzare una matrice di scala per le coordinate X e Y. Scaling così -10.0a 10.0diventa -1.0a 1.0. Per amor di riferimenti, la matrice per farlo è:

0.1   0.0   0.0
0.0   0.1   0.0
0.0   0.0   1.0
  • Gli shader sono tanto usati nelle applicazioni 2D come in quelle 3D? In tal caso, qual è il loro scopo nell'impostazione 2D?

Possono essere. Possono ancora essere utilizzati per l'illuminazione Per-Pixel, dando una profondità finta agli oggetti. Possono anche essere usati per effetti di trama, effetti d'acqua, generazione di immagini ... potresti persino usarli per fare calcoli di fisica con un po 'di inganno.

Un altro modo per dirlo è: tutto ciò per cui sono utilizzati in 3D. Viene applicato in modo diverso e non è altrettanto documentato. Anche se le persone che giocano ai giochi 2D probabilmente non si occuperanno del tuo caso se non hai effetti realistici, quindi non sono nemmeno richiesti.

Anche se avrai bisogno di conoscere le basi degli shader per rendere comunque uno sprite.

  • Come devo gestire l'enorme numero di trame ovviamente necessarie per un gioco 2D?

Proprio come fai in 3D. Mazzi di oggetti trama, PBO e un atlante trama o alcuni. Probabilmente alcune strutture / classi e anche mal di testa. Penso che sarebbe chiamato "Asset Management", o qualcosa di simile.

  • Come posso iniziare con 2D Gamedev?

Probabilmente ci sono alcuni tutorial là fuori. Tuttavia, poiché la versione 3D è più comune, direi di imparare OpenGL per 3D e quindi applicare ciò che impari alla sua controparte 2D. 3D e 2D sono molto simili, il 2D non tiene traccia della coordinata Z.


5
Per il 2D, puoi comunque utilizzare la proiezione ortografica e diverse coordinate Z per eseguire il buffering Z , altrimenti dovresti fare tu stesso l' algoritmo del pittore e disegnare nell'ordine giusto.
congusbongus,

@congusbongus in realtà, se stai spritz con trasparenza, molto probabilmente dovrai fare tu stesso l'algoritmo del pittore ...
Panda Pajama,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.