Precisa-se de normais para um jogo estritamente 2D?

8

Estou começando a aprender o OpenGL criando um jogo 2D puro.

Eu tenho que decidir sobre o formato dos vértices. Preciso de um componente normal? Ou isso não é necessário para um componente 2D?

Meu pressentimento diz que não vou precisar, já que tudo é plano. Mas talvez eu precise disso para um shader ou outra coisa que ainda não vejo.


fonte

Respostas:

9

Faz uma necessidade normais para um jogo 2D? Não. Você nem precisa de normais para um jogo em 3D se não se incomoda com a iluminação. No entanto, normais e iluminação podem se aplicar muito a jogos 2D. Você apenas faz isso de uma maneira diferente. Em vez de definir explicitamente um vetor normal 3D que se alinhe ao seu vértice, você pode definir um mapa normal que seja alinhado com seus gráficos 2D. Isso permite que você tenha uma iluminação incrivelmente épica, mesmo em um jogo 2D .

TheBuzzSaw
fonte
4

A rigor, o componente normal será ignorado se você desligar a iluminação. Se você conseguir escrever seus próprios shaders em qualquer idioma / kit de ferramentas que estiver usando, tenha certeza absoluta de que eles não serão usados.

Lutero
fonte
Se eu desligar a iluminação, ainda posso usar cores nos meus vértices, certo?
Você deve ser capaz de fazer isso sim, contanto que você tenha ativado glEnableClientState (GL_COLOR_ARRAY) (lembre-se de desativar GL_NORMAL_ARRAY)
Luther
1

Você não precisa de normais, a menos que esteja fazendo simulações de iluminação. Eles são bastante triviais para adicionar quando você precisar deles, em comparação com a dificuldade real de escrever shaders de iluminação.

DeadMG
fonte
1

Se você estiver desenhando seus triângulos em um espaço 3D e depois visualizando tudo de lado para parecer 2D (o que você deve fazer), precisará de normais para poder desenhar luzes por cima seus quadriláteros.

Se você não acender nada, não precisará de normais.

Minha recomendação, já que você está fazendo essa pergunta, é omitir os normais por enquanto, independentemente de quais são seus planos posteriores. Não será difícil adicioná-los mais tarde, se você precisar deles.

Olhovsky
fonte
0

Só você sabe se precisará de normais em um jogo 2D. Eles podem fazer sentido - DOOM, por exemplo, tinha normais mesmo que fosse um jogo em 2D (sim, sim, parecia bastante 3D, mas tecnicamente ainda era um jogo em 2D).

Uma boa razão para ter normais em um jogo 2D seria poder verificar se você está dentro ou fora de alguma forma. Também pode acelerar a resposta à colisão na parede (sabendo a direção para empurrar objetos para fora da parede).

Não há motivo para dar os normais ao OpenGL ou a qualquer pacote de renderização que você use, se não for necessário para nada (como a iluminação praticamente todo mundo já apontou).

Jari Komppa
fonte
-1

Que tipo de jogo é esse? Se você tem uma perspectiva de cima para baixo, os normais podem ser úteis para movimentar seus personagens (você sabe, mudar de posição ao longo da normal direção que o personagem está enfrentando)

As normais também são úteis para diversos comportamentos de direção. Mas um link diz mais de mil palavras: http://www.red3d.com/cwr/steer

HumanCatfood
fonte
Certamente o OP está perguntando especificamente sobre os normais para os verts. Não falando sobre vetores de velocidade e esse tipo de coisa.
Tétrada
Certeza que o OP é especificamente perguntando sobre as normais para os verts ou (citação de início) outra coisa que eu não vejo ainda (fim citação) ...
HumanCatfood