- Como devo configurar minhas várias matrizes para projeção ortográfica?
Seu objetivo é 2D, certo? Então você não precisa de nenhuma projeção. Projeção é o ato de condensar um mundo 3D em um plano 2D. Defina o sombreador de forma que a coordenada Z de todos os vértices seja padronizada 0.0
e você deve ser definido.
Você pode usar uma matriz de escala para as coordenadas X e Y. Dimensioná-lo de modo -10.0
a 10.0
torna-se -1.0
a 1.0
. Para fins de referência, a matriz para fazer isso é:
0.1 0.0 0.0
0.0 0.1 0.0
0.0 0.0 1.0
- Os shaders são tão usados em aplicativos 2D quanto em 3D? Em caso afirmativo, qual é o seu objetivo na configuração 2D?
Eles podem ser. Eles ainda podem ser usados para iluminação por pixel, dando uma profundidade falsa aos objetos. Eles também podem ser usados para efeitos de textura, efeitos de água, geração de imagens ... você pode até usá-los para fazer cálculos de física com um pouco de truque.
Outra maneira de colocar isso é: tudo o que eles são usados em 3D. É aplicado de maneira diferente e não é tão bem documentado. Embora as pessoas que jogam jogos em 2D provavelmente não entrem no seu caso, se você não tiver efeitos reais, elas também não são necessárias.
Embora você precise conhecer o básico dos shaders para renderizar um sprite de qualquer maneira.
- Como devo lidar com o grande número de texturas obviamente necessárias para um jogo 2D?
Assim como você faz em 3D. Cachos de objetos de textura, PBOs e um Atlas de textura ou alguns. Provavelmente algumas estruturas / classes e dores de cabeça também. Eu acho que isso seria chamado de "Gerenciamento de ativos", ou algo semelhante.
- Como posso começar com o gamedev 2D?
Provavelmente existem alguns tutoriais por aí. Porém, como a versão 3D é mais comum, eu diria para aprender o OpenGL para 3D e depois aplicar o que você aprendeu na versão 2D. 3D e 2D são muito semelhantes, 2D simplesmente não controla a coordenada Z.