Jak korzystać z nowoczesnego OpenGL do gier 2D?

9

Znalazłem mnóstwo „nowoczesnych” samouczków OpenGL (3.0+) dla 3D, ale nie znalazłem prawie nic, gdy szukałem informacji o tym, jak używać go do tworzenia gier 2D. Jak rozpocząć korzystanie z OpenGL dla gier 2D?

W szczególności jestem zainteresowany uzyskaniem odpowiedzi na następujące tematy:

  • Jak skonfigurować różne matryce do projekcji ortograficznej?
  • Czy shadery są tak intensywnie wykorzystywane w aplikacjach 2D, jak w aplikacjach 3D? Jeśli tak, jaki jest ich cel w ustawieniach 2D?
  • Jak poradzić sobie z ogromną liczbą tekstur, które oczywiście są wymagane do gry 2D?

Przepraszam za stosunkowo szerokie pytanie, ale długo szukałem i znalazłem bardzo mało przydatnych informacji, które dotyczą współczesnego OpenGL.

Alexis King
źródło

Odpowiedzi:

11
  • Jak skonfigurować różne matryce do projekcji ortograficznej?

Twoim celem jest 2D, prawda? Więc nie potrzebujesz żadnej projekcji. Projekcja polega na kondensacji świata 3D do płaszczyzny 2D. Ustaw moduł cieniujący, aby 0.0ustawiał domyślną współrzędną Z każdego wierzchołka i powinieneś zostać ustawiony.

Możesz jednak użyć macierzy skali dla współrzędnych X i Y. Skalowanie tak, -10.0aby 10.0stało -1.0się 1.0. Dla odniesienia, matrycą do tego jest:

0.1   0.0   0.0
0.0   0.1   0.0
0.0   0.0   1.0
  • Czy shadery są tak intensywnie wykorzystywane w aplikacjach 2D, jak w aplikacjach 3D? Jeśli tak, jaki jest ich cel w ustawieniach 2D?

Oni mogą być. Nadal można ich używać do oświetlenia Per-Pixel, nadając obiektom fałszywą głębię. Można ich również używać do efektów tekstur, efektów wodnych, generowania obrazów ... możesz nawet użyć ich do wykonywania obliczeń fizycznych z odrobiną sztuczki.

Innym sposobem na wyrażenie tego jest: Wszystko, do czego są używane w 3D. Jest po prostu inaczej stosowany i nie jest tak dobrze udokumentowany. Chociaż osoby grające w gry 2D prawdopodobnie nie będą się zajmować twoją sprawą, jeśli nie masz realistycznych efektów, więc nie są one również wymagane.

Chociaż musisz znać podstawy shaderów, aby zrenderować duszka.

  • Jak poradzić sobie z ogromną liczbą tekstur, które oczywiście są wymagane do gry 2D?

Tak jak w 3D. Pęczki obiektów tekstur, PBO i Atlas tekstur lub kilka innych. Prawdopodobnie kilka struktur / klas, a także bóle głowy. Myślę, że byłoby to nazwane „Zarządzanie aktywami” lub coś podobnego.

  • Jak mogę rozpocząć grę 2D?

Prawdopodobnie jest tam kilka samouczków. Chociaż, ponieważ wersja 3D jest bardziej popularna, powiedziałbym, aby nauczyć się OpenGL dla 3D, a następnie zastosować to, czego się uczysz, do jego odpowiednika 2D. 3D i 2D są bardzo podobne, 2D po prostu nie śledzi współrzędnej Z.

Wolfgang Skyler
źródło
5
W przypadku 2D nadal można użyć projekcji ortograficznej i różnych współrzędnych Z, aby wykonać buforowanie Z. W przeciwnym razie konieczne byłoby samodzielne wykonanie algorytmu malarza i narysowanie we właściwej kolejności.
congusbongus
@ congusbongus, jeśli sprintujesz z przezroczystością, najprawdopodobniej będziesz musiał samodzielnie wykonać algorytm malarza ...
Panda Pajama