¿Por qué está Y en muchos juegos?

19

Aprendí en la escuela que el eje z está arriba. Es lo mismo en el software de modelado como Blender. Sin embargo, en muchos juegos el eje y está arriba.

¿Cuál es la razón?

danijar
fuente
En realidad, aquí en la universidad, muchas personas dibujan y en dirección ascendente cuando dibujan una imagen 2D (supongo que en 2D y también está arriba y, a menudo, usamos 3D como una generalización de 2D al mostrar ejemplos). No recuerdo que realmente aprendimos una regla para ello en la escuela.
Aufziehvogel
44
Respuesta simple: durante millones de años, los matemáticos dibujaron gráficos XY en papel que tiene X yendo de izquierda a derecha e Y yendo de arriba hacia abajo, y cuando se agregó la profundidad se convirtió en Z entrando y saliendo del papel. Respuesta no tan simple: nadie está de acuerdo en nada, ¿por qué estarían de acuerdo en ejes arbitrarios? =)
Patrick Hughes
También encuentro este contador intuitivo para 2D, quizás porque comencé con XNA donde Y baja. Pero las cosas en la parte posterior deben dibujarse primero y más arriba en el espacio de la pantalla a menudo significa más lejos. Esto da como resultado cambiar algunas y al dibujar mapas de mosaico y la lógica se vuelve incómoda.
Madmenyo
Tenga en cuenta que si originalmente trabajáramos con gráficos ZY con Z hacia arriba, entonces no tendríamos este problema: simplemente habríamos introducido un eje X y habíamos terminado con él. (O, de manera similar, si agregamos un eje W a nuestros gráficos YX, tampoco tendríamos esta confusión.)
Little Endian

Respuestas:

46

Creo que la dirección de los ejes de coordenadas son restos de diferentes dominios donde el plano crucial era diferente, y X / Y estaban alineados con ese plano crucial. En algunas aplicaciones, el plano de tierra era el más importante, por lo tanto, X / Y era el suelo y Z terminaba perpendicular a eso. Sin embargo, para los juegos, el plano crucial suele ser la pantalla (especialmente, por supuesto, cuando eran 2D y apenas comenzaban a hacer la transición a 3D), por lo tanto, X / Y era la pantalla y luego, cuando los juegos se volvían en 3D, Z terminaba perpendicular a eso.

Puedes ver ese tipo de distinción entre las dos herramientas de arte 3D más grandes: 3ds max y Maya. El eje Z está arriba en 3ds max porque eso surgió de las herramientas arquitectónicas, mientras que el eje Y está arriba en Maya porque eso surgió de las herramientas para hacer películas.

Lo importante a tener en cuenta al comparar cualquier herramienta específica con lo que aprendió en la escuela es que todo es arbitrario. Realmente no importa en qué dirección apunten los ejes, siempre que mantenga todo coherente y se traduzca correctamente entre diferentes sistemas de coordenadas.

jhocking
fuente
3

Es principalmente legado de los tiempos en que todo lo que podría haberse hecho con 3D era un cubo giratorio de espacio de pantalla o desplazamiento de paralaje o algo similar. En tales aplicaciones, Z era "profundidad" porque X e Y eran los ejes del plano de la pantalla. A medida que las demostraciones se hicieron más avanzadas, las convenciones originales se mantuvieron porque es más fácil no cambiar nada que funcione.

En cuanto a por qué exactamente los juegos de hoy tienen Y como eje vertical: hay muchos tutoriales mal escritos que no explican la diferencia. Por lo general, es más útil tener el plano de movimiento primario en los ejes X e Y (para que la mayoría de los cálculos 2D no requieran intercambiar ejes en el código). Para la mayoría de los desplazamientos laterales, es bastante natural que coincida con el plano de la pantalla (X / Y). Para los juegos de aventura y demás, X / Y funciona bien como el plano horizontal (perpendicular a la dirección de la gravedad) porque se adapta perfectamente a los mapas del juego, los controles del gamepad, los mapas de altura del terreno y muchas otras cosas.

serpiente5
fuente
2

Por lo que he deducido, Y = arriba / abajo, y Z = profundidad se basa en la física, donde la gravedad siempre está en la dirección (-Y), y luego agregar 3D significa que no quieres cambiar un elemento fundamental , entonces se hizo profundidad.

En el método Z = arriba / abajo, eso es un retroceso para los matemáticos. porque X / Y se dibujó en el papel que estaba plano sobre la mesa cuando se extendió el eje Z, salía del papel y, por lo tanto, hacia arriba. aunque muchos de sus ingenieros también usarán esta convención también.

en lo que respecta a la convención utilizada por la herramienta dada: Maya y Unity tienen Y-up (probablemente diseñado por alguien con experiencia en física). mientras que 3DsMax e Unreal tienen Z-up (probablemente diseñado por matemáticos / ingenieros). aunque también se puede decir que estos también podrían ser solo una decisión dividida un día porque se tuvo que usar un sistema consistente.

ya que esta pregunta se centra en una herramienta de modelado y se coloca en un sitio de preguntas y respuestas sobre desarrollo de juegos. es posible que desee ver a qué sistema de coordenadas va a exportar y asegurarse de cumplir con eso.

También tenga en cuenta que en algunos sistemas, el sistema de ejes es rígido y permanente, y otros se pueden modificar (piense que se puede cambiar en Blender y Unreal, pero podría estar equivocado)

gardian06
fuente
1

Porque el sistema de coordenadas que se usa en los juegos se basa en la dimensión del monitor. Cuando la computadora representa algo, comienza en la esquina superior izquierda que da las coordenadas x e y de [0, 0]. A medida que el renderizado avanza hacia el lado derecho de la pantalla, el valor de x aumenta, respectivamente cuando el render se mueve hacia abajo, el valor de y aumenta. El sistema de coordenadas es básicamente el de un espacio 2D, excepto que el origen descansa en la esquina superior izquierda y no en el centro de la pantalla.

En paquetes 3D como 3DsMax y Maya, tienen su propia definición de coordenadas x e y en función de lo que es importante para ellos. 3DsMax se basó en el diseño arquitectónico, si dibuja un esquema en un plano 2D, y está arriba. En Maya, que se usa principalmente para animación, por lo tanto, el suelo es x, y y la altura es z.

Frankie Law
fuente
En Maya, la pantalla es X / Y y Z es perpendicular a la pantalla.
jhocking
Votados en contra, porque la pregunta es "Por qué" no "Cómo", carece de las razones de por qué es como es, simplemente reiterando cómo es.
Maik Semder
Bueno, para ser justos, la primera palabra es "porque", es decir. Esta respuesta comienza con una explicación de las razones. Tal vez no sea una gran explicación, pero es una explicación.
jhocking