¿Se necesitan normales para un juego estrictamente 2D?

8

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.


fuente

Respuestas:

9

¿Se necesitan normales para un juego en 2D? No. Ni siquiera necesitas normales para un juego en 3D si no te vas a molestar con la iluminación. Sin embargo, las normales y la iluminación pueden aplicarse mucho a los juegos 2D. Simplemente lo haces de una manera diferente. En lugar de definir explícitamente un vector normal 3D que se alinee con su vértice, puede definir un mapa normal que se alinee con sus gráficos 2D. Esto te permite tener una iluminación increíblemente épica incluso en un juego en 2D .

TheBuzzSaw
fuente
4

Estrictamente hablando, el componente normal será ignorado si ha apagado la iluminación. Si puede escribir sus propios sombreadores en cualquier idioma / kit de herramientas que esté utilizando, puede asegurarse absolutamente de que no se usen.

Lutero
fuente
Si apago la iluminación, aún puedo usar colores en mis vértices, ¿verdad?
Debería poder hacerlo sí, siempre que haya habilitado glEnableClientState (GL_COLOR_ARRAY) (recuerde deshabilitar GL_NORMAL_ARRAY)
Luther
1

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.

DeadMG
fuente
1

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.

Olhovsky
fuente
0

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).

Jari Komppa
fuente
-1

¿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

HumanCatfood
fuente
Estoy bastante seguro de que el OP pregunta específicamente sobre las normales para los veterinarios. No hablamos de vectores de velocidad y ese tipo de cosas.
Tetrad
Estoy bastante seguro de que el OP pregunta específicamente sobre las normales para los veterinarios u (inicio de la cita) otra cosa que aún no veo (fin de la cita) ...
HumanCatfood