- Comment configurer mes différentes matrices pour la projection orthographique?
Votre objectif est 2D, non? Vous n'avez donc pas besoin de projection. La projection est l'acte de condenser un monde 3D en un plan 2D. Définissez le shader pour qu'il 0.0
définisse par défaut la coordonnée Z de chaque sommet et vous devez être défini.
Vous pouvez cependant utiliser une matrice d'échelle pour les coordonnées X et Y. Mise à l' échelle si -10.0
à 10.0
devient -1.0
à 1.0
. Par souci de référence, la matrice pour ce faire est:
0.1 0.0 0.0
0.0 0.1 0.0
0.0 0.0 1.0
- Les shaders sont-ils aussi largement utilisés dans les applications 2D que dans les applications 3D? Si oui, quel est leur objectif dans le cadre 2D?
Ils peuvent être. Ils peuvent toujours être utilisés pour l'éclairage par pixel, donnant une fausse profondeur aux objets. Ils peuvent également être utilisés pour des effets de texture, des effets d'eau, la génération d'images ... vous pouvez même les utiliser pour faire des calculs physiques avec un peu de ruse.
Une autre façon de le dire est: tout ce pour quoi ils sont utilisés en 3D. Il est simplement appliqué différemment et n'est pas aussi bien documenté. Bien que les gens qui jouent à des jeux 2D n'obtiendront probablement pas votre cas si vous n'avez pas d'effets réalistes, ils ne sont donc pas nécessaires non plus.
Bien que vous ayez besoin de connaître les bases des shaders pour rendre un sprite de toute façon.
- Comment dois-je gérer le nombre énorme de textures évidemment nécessaires pour un jeu 2D?
Tout comme vous le faites en 3D. Des grappes d'objets de texture, PBO et un Atlas de texture ou quelques-uns. Probablement quelques structures / classes, ainsi que des maux de tête. Je pense que ce serait appelé "Asset Management", ou quelque chose de similaire.
- Comment démarrer avec 2D gamedev?
Il existe probablement quelques tutoriels. Cependant, puisque la version 3D est plus courante, je dirais d'apprendre OpenGL pour 3D et ensuite d'appliquer ce que vous apprenez à son homologue 2D. 3D et 2D sont très similaires, 2D ne suit tout simplement pas la coordonnée Z.