Por que Y está presente em muitos jogos?

19

Aprendi na escola que o eixo z está ativo. É o mesmo em softwares de modelagem como o Blender. No entanto, em muitos jogos, o eixo y está ativo.

Qual é a razão?

danijar
fonte
Na verdade, aqui na universidade, muitas pessoas desenham y na direção superior quando desenham uma imagem 2D (acho que em 2D y também está presente e geralmente usamos o 3D como uma generalização do 2D ao mostrar exemplos). Não me lembro de realmente aprendemos uma regra para isso na escola.
Aufziehvogel
4
Resposta simples: por milhões de anos, os matemáticos desenharam gráficos XY no papel, com X indo para a esquerda-direita e Y para cima e para baixo, e quando a profundidade foi adicionada, tornou-se Z entrando e saindo do papel. Resposta não tão simples: ninguém concorda em nada, por que eles concordam em eixos arbitrários? =)
Patrick Hughes
Também acho esse contador intuitivo para 2D, talvez porque comecei com o XNA, onde Y cai. Mas as coisas na parte de trás devem ser desenhadas primeiro e mais alto no espaço da tela geralmente significa mais longe. Isso resulta em inverter alguns ys ao desenhar mapas de mosaico e a lógica se torna estranha.
Madmenyo
Observe que, se originalmente trabalhávamos com gráficos ZY com Z em cima, não teríamos esse problema - apenas introduziríamos um eixo X e concluiríamos com ele. (Ou, da mesma forma, se adicionarmos um eixo W para nossos gráficos YX, nós também não tem essa confusão.)
Little Endian

Respostas:

46

Eu acho que a direção dos eixos de coordenadas são remanescentes de diferentes domínios onde o plano crucial era diferente e X / Y estavam alinhados com esse plano crucial. Em algumas aplicações, o plano de terra era o mais importante, portanto X / Y era o solo e Z terminava perpendicular a isso. Para os jogos, no entanto, o plano crucial é geralmente a tela (especialmente quando eles eram 2D ​​e estavam começando a fazer a transição para 3D), portanto X / Y era a tela e, quando os jogos passavam, o 3D Z era perpendicular a isso.

Você pode ver esse tipo de distinção entre as duas maiores ferramentas de arte 3D: 3ds max e Maya. O eixo Z subiu no 3ds max porque isso cresceu a partir de ferramentas de arquitetura, enquanto o eixo Y subiu no Maya porque isso cresceu a partir de ferramentas de criação de filmes.

O importante a se perceber ao comparar qualquer ferramenta específica com o que você aprendeu na escola é que tudo é arbitrário. Realmente não importa para que lado os eixos são apontados, desde que você mantenha tudo consistente e traduza corretamente entre diferentes sistemas de coordenadas.

jhocking
fonte
3

É principalmente legado dos tempos em que tudo o que poderia ter sido feito com 3D era algum cubo rotativo no espaço da tela ou rolagem de paralaxe ou algo semelhante. Em tais aplicações, Z era "profundidade" porque X e Y eram os eixos do plano da tela. À medida que as demos foram ficando mais avançadas, as convenções originais permaneceram porque é mais fácil não mudar nada que funcione.

Por que exatamente os jogos de hoje têm Y como eixo vertical - existem muitos tutoriais mal escritos por aí que não explicam a diferença. Geralmente, é mais útil ter o plano de movimento primário nos eixos X e Y (para que a maioria dos cálculos 2D não exija a troca de eixos no código). Para a maioria dos roletes laterais, é naturalmente coincidente com o plano da tela (X / Y). Para jogos de aventura e similares, o X / Y funciona bem como o plano horizontal (perpendicular à direção da gravidade) porque mapeia perfeitamente para mapas do jogo, controles do gamepad, mapas de altura do terreno e muitas outras coisas.

snake5
fonte
2

Tanto quanto eu já recolhi Y = para cima / para baixo, e Z = profundidade é baseada na física, onde a gravidade está sempre na direção (-Y) e, em seguida, adicionar 3D significa que você não quer mudar um fundamento , então foi feito profundidade.

No método Z = para cima / para baixo, isso é um retrocesso para os matemáticos. como X / Y foi desenhado no papel que estava na mesa quando o eixo Z foi estendido, ele estava saindo do papel e, portanto, subindo. embora muitos de seus engenheiros também usem essa convenção.

em relação à convenção usada pela ferramenta fornecida: Maya e Unity têm Y-up (provavelmente projetado por alguém com formação em física). enquanto o 3DsMax e o Unreal possuem Z-up (provavelmente projetado por matemáticos / engenheiros). embora também se possa dizer que estas também poderiam ser apenas uma decisão dividida tomada um dia porque um sistema consistente teve que ser usado.

já que essa pergunta se concentra em uma ferramenta de modelagem e é colocada em um site de perguntas e respostas sobre desenvolvimento de jogos. convém verificar para qual sistema de coordenadas você estará exportando e verifique se está em conformidade com isso.

também percebemos que em alguns sistemas o sistema de eixos é definido com precisão e permanente, e outros podem ser modificados (pense que pode ser alterado no Blender e Unreal, mas pode estar errado)

gardian06
fonte
1

Porque o sistema de coordenadas usado nos jogos se baseia na dimensão do monitor. Quando o computador renderiza alguma coisa, ele inicia no canto superior esquerdo, que fornece as coordenadas x e y de [0, 0]. À medida que a renderização progride para o lado direito da tela, o valor x aumenta, respectivamente quando a renderização se move para baixo, e o valor y aumenta. O sistema de coordenadas é basicamente o de um espaço 2D, exceto a origem no canto superior esquerdo e não no centro da tela.

Em pacotes 3D, como 3DsMax e Maya, eles têm sua própria definição de coordenadas x e y com base no que é importante para elas. O 3DsMax foi baseado no projeto arquitetônico; se você desenhar um esquema em um plano 2D, y será ativado. No Maya, que é usado principalmente para animação, o solo é x, ye a altura é z.

Frankie Law
fonte
No Maya, a tela é X / Y e Z é perpendicular à tela.
Jhocking
Votado, porque a pergunta é "Por que" e não "Como", faltam as razões pelas quais ela é como é, apenas reiterando como é.
Maik Semder
Bem, para ser justo, a primeira palavra é "porque" ie. esta resposta começa com uma explicação dos motivos. Talvez não seja uma ótima explicação, mas é uma explicação.
Jhocking