Estoy empezando a aprender OpenGL creando un juego 2D puro.
Tengo que decidir sobre el formato de los vértices. ¿Necesito un componente normal? ¿O no es necesario para un componente 2d?
Mi instinto me dice que no lo necesitaré, ya que todo es plano. Pero tal vez lo necesito para algún sombreador u otra cosa que aún no veo.
No necesita normales a menos que esté haciendo simulaciones de iluminación. Son bastante triviales para agregar una vez que los necesita, en comparación con la dificultad real de escribir sombreadores de iluminación.
fuente
Si está dibujando sus triángulos en un espacio 3D, y luego visualiza todo desde un lado para que se vea en 2D (que es lo que debería estar haciendo), necesitará normales para poder dibujar luces sobre la parte superior tus quads
Si no enciende nada, no necesitará normales.
Mi recomendación, ya que hace esta pregunta, es omitir las normales por ahora, independientemente de cuáles sean sus planes más adelante. No será difícil agregarlos más tarde si los necesita.
fuente
Solo tú sabes si necesitarás normales en un juego 2D. Pueden tener sentido: DOOM, por ejemplo, tenía valores normales a pesar de que era un juego en 2D (sí, sí, se veía bastante en 3D, pero técnicamente todavía era un juego en 2D).
Una buena razón para tener normales en un juego 2D sería poder comprobar si estás dentro o fuera de alguna forma. También puede acelerar la respuesta de colisión de la pared (conocer la dirección para empujar objetos fuera de la pared).
No hay ninguna razón para dar las normales a OpenGL o cualquier paquete de renderizado que use si no lo necesita para nada (como la iluminación que casi todos los demás han señalado).
fuente
¿Qué tipo de juego es? Si tiene una perspectiva de arriba hacia abajo, las normales pueden ser útiles para el movimiento de sus personajes (ya sabe, cambiar de posición a lo largo de la normal de la dirección que está mirando el personaje)
Las normales también son útiles para una amplia gama de comportamientos de dirección. Pero un enlace dice más de mil palabras: http://www.red3d.com/cwr/steer
fuente