Perché Y su in molti giochi?


19

Ho imparato a scuola che l'asse z è attivo. È lo stesso nel software di modellazione come Blender. Tuttavia in molti giochi l'asse y è attivo.

Qual è il motivo?


In realtà, qui all'università molte persone disegnano y verso l'alto quando disegnano un'immagine 2D (indovinate perché anche in 2D y è in alto e spesso usiamo il 3D come generalizzazione del 2D quando mostriamo esempi). Non ricordo che abbiamo davvero imparato una regola per questo a scuola.
Aufziehvogel,

4
Risposta semplice: per milioni di anni i matematici hanno disegnato grafici XY su carta che ha X che va da sinistra a destra e Y che va su-giù, e quando la profondità è stata aggiunta è diventata Z andando dentro-fuori dal foglio. Risposta non così semplice: nessuno è d'accordo su niente, perché dovrebbero essere d'accordo su assi arbitrari? =)
Patrick Hughes il


Trovo questo contatore intuitivo anche per il 2D, forse perché ho iniziato con XNA dove Y scende. Ma le cose sul retro dovrebbero essere disegnate prima e più in alto nello spazio dello schermo spesso significa più lontano. Ciò si traduce nel capovolgere alcune y quando si disegnano tilemap e la logica diventa imbarazzante.
Madmenyo,

Si noti che se inizialmente avessimo lavorato con i grafici ZY con Z in alto, non avremmo questo problema: avremmo appena introdotto un asse X e avremmo finito con esso. (O, allo stesso modo, se aggiungessimo un asse W ai ​​nostri grafici YX, non avremmo questa confusione.)
Little Endian,

Risposte:


46

Penso che la direzione degli assi delle coordinate sia holdover da diversi domini in cui il piano cruciale era diverso e X / Y erano allineati con quel piano cruciale. In alcune applicazioni il piano terra era il più importante, quindi X / Y era il terreno e Z finiva perpendicolarmente a quello. Per i giochi, tuttavia, il piano cruciale è di solito lo schermo (specialmente ovviamente quando erano in 2D e stavano appena iniziando a passare al 3D), quindi X / Y era lo schermo e poi quando i giochi sono diventati 3D Z è diventato perpendicolare a quello.

Puoi vedere quel tipo di distinzione tra i due più grandi strumenti di arte 3D: 3ds max e Maya. L'asse Z è cresciuto in 3ds max perché è cresciuto grazie a strumenti architettonici, mentre l'asse Y è aumentato in Maya perché è cresciuto grazie a strumenti per la creazione di filmati.

La cosa importante da realizzare quando si confronta uno strumento specifico con ciò che hai imparato a scuola è che è tutto arbitrario. Non importa in che modo gli assi siano puntati, purché si mantenga tutto coerente e si traduca correttamente tra i diversi sistemi di coordinate.


3

È principalmente legato ai tempi in cui tutto ciò che avrebbe potuto essere realizzato con il 3D era un cubo rotante dello spazio dello schermo o lo scorrimento della parallasse o qualcosa di simile. In tali applicazioni, Z era "profondità" perché X e Y erano gli assi per il piano dello schermo. Man mano che le demo stavano diventando più avanzate, le convenzioni originali sono rimaste perché è più facile non cambiare nulla che funzioni.

Per quanto riguarda il motivo per cui esattamente i giochi di oggi hanno Y come asse verticale - ci sono molti tutorial scritti male che non spiegano la differenza. Di solito è molto utile avere il piano di movimento primario sugli assi X e Y (in modo che la maggior parte dei calcoli 2D non richiedano lo scambio di assi nel codice). Per la maggior parte dei sidescroller, è naturalmente coincidente con il piano dello schermo (X / Y). Per i giochi di avventura e simili, X / Y funziona bene come il piano orizzontale (perpendicolare alla direzione di gravità) perché si adatta perfettamente alle mappe di gioco, ai controlli del gamepad, alle altezze del terreno e molte altre cose.


2

Per quanto ho mai raccolto Y = su / giù, e Z = profondità si basa sulla fisica dove la gravità è sempre nella direzione (-Y), e quindi aggiungere 3D significa che non vuoi cambiare un fondamentale , quindi è stato reso profondo.

Sul metodo Z = su / giù, tuttavia, è un ritorno ai matematici. poiché X / Y era disegnato sulla carta che era piatta sul tavolo quando l'asse Z era esteso, stava uscendo dalla carta, e quindi su. anche se molti dei tuoi ingegneri useranno anche questa convenzione.

per quanto riguarda la convenzione utilizzata dallo strumento dato: Maya e Unity hanno Y-up (probabilmente progettato da qualcuno con una preparazione fisica). mentre 3DsMax e Unreal hanno Z-up (probabilmente progettato da matematici / ingegneri). sebbene si possa anche dire che questi potrebbero anche essere solo una decisione divisa presa un giorno perché si doveva usare un sistema coerente.

poiché questa domanda si concentra su uno strumento di modellazione e viene inserita in un sito di domande e risposte sullo sviluppo di giochi. potresti voler esaminare in quale sistema di coordinate esporterai e assicurarti di conformarti a quello.

anche rendersi conto che alcuni sistemi il sistema di assi è fisso e permanente e altri possono essere modificati (penso che possa essere cambiato in Blender e Unreal, ma potrebbe essere sbagliato)


1

Perché il sistema di coordinate utilizzato nei giochi si basa sulla dimensione del monitor. Quando il computer esegue il rendering di qualsiasi cosa, inizia nell'angolo in alto a sinistra che fornisce le coordinate x e y di [0, 0]. Man mano che il rendering avanza verso il lato destro dello schermo, il valore x aumenta, rispettivamente quando il rendering si sposta verso il basso, il valore y aumenta. Il sistema di coordinate è fondamentalmente quello di uno spazio 2D, ad eccezione del resto dell'origine nell'angolo in alto a sinistra e non al centro dello schermo.

In pacchetti 3D come 3DsMax e Maya, hanno una propria definizione di coordinate xey basata su ciò che è importante per loro. 3DsMax era basato sulla progettazione architettonica, se si disegna uno schema su un piano 2D, y è attivo. In Maya, che viene utilizzato principalmente per l'animazione, quindi il terreno è x, y e l'altezza è z.


In Maya lo schermo è X / Y e Z è perpendicolare allo schermo.
derisione del

Sottovalutato, perché la domanda è "Perché" non "Come", manca i motivi per cui è così com'è, solo ribadendo come è.
Maik Semder,

Bene in tutta onestà la prima parola è "perché" cioè. questa risposta inizia con una spiegazione dei motivi. Forse non è una grande spiegazione, ma è una spiegazione.
jhocking
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.