A-t-on besoin de normales pour un jeu strictement 2D?

8

Je commence à apprendre OpenGL en créant un jeu 2D pur.

Je dois décider du format des sommets. Ai-je besoin d'un composant normal? Ou est-ce pour un composant 2D non nécessaire?

Mon instinct me dit que je n'en aurai pas besoin car tout est plat. Mais peut-être que j'en ai besoin pour un shader ou autre chose que je ne vois pas encore.


la source

Réponses:

9

A-t-on besoin de normales pour un jeu 2D? Non. Vous n'avez même pas besoin de normales pour un jeu 3D si vous ne vous souciez pas de l'éclairage. Cependant, les normales et l'éclairage peuvent très bien s'appliquer aux jeux 2D. Vous vous y prenez simplement d'une manière différente. Plutôt que de définir explicitement un vecteur normal 3D qui s'aligne avec votre sommet, vous pouvez définir une carte normale qui s'aligne avec vos graphiques 2D. Cela vous permet d'avoir un éclairage incroyablement épique, même dans un jeu 2D .

TheBuzzSaw
la source
4

À strictement parler, le composant normal sera ignoré si vous avez désactivé l'éclairage. Si vous êtes capable d'écrire vos propres shaders dans la langue / boîte à outils que vous utilisez, vous pouvez vous assurer qu'ils ne sont pas utilisés.

Luther
la source
Si je désactive l'éclairage, je peux toujours utiliser des couleurs sur mes sommets, n'est-ce pas?
Vous devriez pouvoir le faire oui, tant que vous avez activé glEnableClientState (GL_COLOR_ARRAY) (n'oubliez pas de désactiver GL_NORMAL_ARRAY)
Luther
1

Vous n'avez pas besoin de normales, sauf si vous faites des simulations d'éclairage. Ils sont assez simples à ajouter une fois que vous en avez besoin, par rapport à la difficulté réelle d'écrire des shaders d'éclairage.

DeadMG
la source
1

Si vous dessinez vos triangles dans un espace 3D, puis que vous visualisez tout de côté pour lui donner un aspect 2D (ce que vous devriez faire), vous aurez besoin de normales pour pouvoir dessiner des lumières par-dessus vos quads.

Si vous n'éclairez rien, vous n'aurez pas besoin de normales.

Ma recommandation puisque vous posez cette question, est d'omettre les normales pour l'instant, quels que soient vos plans plus tard. Il ne sera pas difficile de les ajouter plus tard si vous en avez besoin.

Olhovsky
la source
0

Vous seul savez si vous aurez besoin de normales dans un jeu 2d. Ils peuvent avoir un sens - DOOM, par exemple, avait des normales même si c'était un jeu en 2d (oui oui, il avait l'air assez 3d, mais techniquement c'était toujours un jeu en 2d).

Une bonne raison d'avoir des normales dans un jeu 2d serait de pouvoir vérifier si vous êtes à l'intérieur ou à l'extérieur d'une forme. Il peut également accélérer la réponse aux collisions avec les murs (connaître la direction pour pousser les objets hors du mur).

Il n'y a aucune raison de donner les normales à OpenGL ou à tout autre package de rendu que vous utilisez s'il n'en a pas besoin pour rien (comme l'éclairage à peu près tout le monde l'a souligné).

Jari Komppa
la source
-1

De quel genre de jeu s'agit-il? Si vous avez une perspective descendante, les normales peuvent être utiles pour le mouvement de mitraillage de vos personnages (vous savez, changer de position le long de la normale de la direction dans laquelle le personnage fait face)

Les normales sont également utiles pour toute une gamme de comportements de pilotage. Mais un lien dit plus de mille mots: http://www.red3d.com/cwr/steer

HumanCatfood
la source
Je suis presque sûr que l'OP pose spécifiquement des questions sur les normales pour les verts. Sans parler des vecteurs de vitesse et de ce genre de choses.
Tetrad
Je suis sûr que l'OP demande spécifiquement des normales pour les verts ou (début de citation) autre chose que je ne vois pas encore (fin de citation) ...
HumanCatfood