Warum ist Y in vielen Spielen auf?


19

Ich habe in der Schule gelernt, dass die Z-Achse oben ist. Bei der Modellierungssoftware ist es dasselbe wie bei Blender. In vielen Spielen ist die y-Achse jedoch oben.

Was ist der Grund?


Tatsächlich zeichnen hier an der Universität viele Leute y in Aufwärtsrichtung, wenn sie ein 2D-Bild zeichnen (raten Sie, weil y in 2D ebenfalls aufwärts ist und wir häufig nur 3D als Verallgemeinerung von 2D verwenden, wenn wir Beispiele zeigen). Ich kann mich nicht erinnern, dass wir in der Schule wirklich eine Regel dafür gelernt haben.
Aufziehvogel

4
Einfache Antwort: Jahrmillionen lang zeichneten Mathematiker XY-Diagramme auf Papier, wobei X von links nach rechts und Y von oben nach unten ging, und wenn Tiefe hinzugefügt wurde, wurde es zu Z von innen nach außen. Keine einfache Antwort: Niemand ist sich einig, warum sollten sie sich auf beliebige Achsen einigen? =)
Patrick Hughes


Ich finde diesen Zähler auch für 2D intuitiv, vielleicht weil ich mit XNA angefangen habe, wo Y nach unten geht. Aber Dinge, die hinten sein sollten, sollten zuerst gezeichnet werden und höher im Bildschirmraum bedeutet oft weiter weg. Dies führt dazu, dass beim Zeichnen von Kacheln einige ys umgedreht werden und die Logik umständlich wird.
Madmenyo

Beachten Sie, dass wir dieses Problem nicht hätten, wenn wir ursprünglich mit ZY-Diagrammen mit Z im oberen Bereich gearbeitet hätten - wir hätten nur eine X-Achse eingeführt und wären damit fertig. (Oder, ähnlich, wenn wir unseren YX-Diagrammen eine W-Achse hinzufügen würden, hätten wir auch diese Verwirrung nicht.)
Little Endian

Antworten:


46

Ich denke, dass die Richtung der Koordinatenachsen Überbleibsel aus verschiedenen Bereichen sind, in denen die entscheidende Ebene unterschiedlich war und X / Y mit dieser entscheidenden Ebene ausgerichtet waren. In einigen Anwendungen war die Grundebene am wichtigsten, daher war X / Y der Grund und Z endete senkrecht dazu. Für Spiele ist jedoch die entscheidende Ebene normalerweise der Bildschirm (besonders natürlich damals, als sie 2D waren und gerade anfingen, zu 3D überzugehen), also waren X / Y der Bildschirm und dann, als die Spiele 3D wurden, endete Z senkrecht dazu.

Sie können diesen Unterschied zwischen den beiden größten 3D-Grafikwerkzeugen erkennen: 3ds max und Maya. Die Z-Achse ist in 3ds max höher, weil das aus Architekturwerkzeugen heraus gewachsen ist, während die Y-Achse in Maya höher ist, weil das aus Filmerzeugungswerkzeugen herausgewachsen ist.

Wenn Sie ein bestimmtes Werkzeug mit dem vergleichen, was Sie in der Schule gelernt haben, ist es wichtig zu wissen, dass alles willkürlich ist. Es ist wirklich egal, in welche Richtung die Achsen zeigen, solange Sie alles konsistent halten und zwischen verschiedenen Koordinatensystemen korrekt übersetzen.


3

Es ist größtenteils ein Erbe aus der Zeit, als mit 3D nur ein rotierender Würfel oder ein Parallaxen-Bildlauf oder ähnliches im Bildschirmraum möglich gewesen wäre. In solchen Anwendungen war Z "Tiefe", da X und Y die Achsen für die Bildschirmebene waren. Da Demos immer fortgeschrittener wurden, blieben die ursprünglichen Konventionen erhalten, da es einfacher ist, nichts zu ändern, was funktioniert.

Warum genau heutige Spiele Y als vertikale Achse haben - es gibt viele schlecht geschriebene Tutorials, die den Unterschied nicht erklären. In der Regel ist es am nützlichsten, die primäre Bewegungsebene auf der X- und der Y-Achse zu haben (sodass bei den meisten 2D-Berechnungen keine Achsen im Code ausgetauscht werden müssen). Bei den meisten Side-Rollern fällt dies natürlich mit der Bildschirmebene (X / Y) zusammen. Für Abenteuerspiele und ähnliches funktioniert X / Y gut als horizontale Ebene (senkrecht zur Schwerkraftrichtung), da es perfekt auf In-Game-Karten, Gamepad-Steuerelemente, Geländehöhenkarten und viele andere Dinge abgebildet wird.


2

Soweit ich jemals Y = auf / ab und Z = Tiefe gelernt habe, basiert dies auf der Physik, bei der die Schwerkraft immer in der (-Y) -Richtung ist, und wenn Sie dann 3D hinzufügen, bedeutet dies, dass Sie keine fundamentalen Änderungen vornehmen möchten . so wurde es tiefe gemacht.

Bei der Z = up / down-Methode ist dies jedoch ein Rückfall für Mathematiker. Da X / Y auf dem Papier gezeichnet wurde, das beim Ausfahren der Z-Achse flach auf dem Tisch lag, kam es aus dem Papier und daher nach oben. Viele Ihrer Ingenieure werden diese Konvention jedoch auch anwenden.

In Bezug auf die Konvention, die von dem gegebenen Werkzeug verwendet wird: Maya und Unity haben Y-up (wahrscheinlich von jemandem mit physikalischem Hintergrund entworfen). während 3DsMax und Unreal Z-up haben (wahrscheinlich von Mathematikern / Ingenieuren entworfen). es kann aber auch gesagt werden, dass dies auch nur eine geteilte Entscheidung eines Tages sein könnte, da ein konsistentes System verwendet werden musste.

da sich diese Frage auf ein Modellierungswerkzeug konzentriert und auf einer Frage- und Antwortseite für Spieleentwickler platziert wird. Möglicherweise möchten Sie überprüfen, in welches Koordinatensystem Sie exportieren, und sicherstellen, dass Sie dem entsprechen.

Stellen Sie auch fest, dass bei einigen Systemen das Achsensystem fest und dauerhaft eingestellt ist und bei anderen Systemen Änderungen möglich sind (denken Sie, es kann in Blender und Unreal geändert werden, aber dies könnte falsch sein).


1

Weil das in Spielen verwendete Koordinatensystem von der Dimension des Monitors abhängt. Wenn der Computer etwas rendert, beginnt er in der oberen linken Ecke und gibt die x- und y-Koordinate von [0, 0] an. Wenn das Rendern in Richtung der rechten Seite des Bildschirms voranschreitet, erhöht sich der x-Wert bzw. der y-Wert, wenn sich das Rendern nach unten bewegt. Das Koordinatensystem ist im Grunde das eines 2D-Raums, außer dass der Ursprung in der oberen linken Ecke und nicht in der Mitte Ihres Bildschirms liegt.

In 3D-Paketen wie 3DsMax und Maya haben sie ihre eigene Definition von x- und y-Koordinaten, basierend auf dem, was für sie wichtig ist. 3DsMax basierte auf architektonischen Entwürfen. Wenn Sie ein Schema auf einer 2D-Ebene zeichnen, ist y oben. In Maya, das hauptsächlich für Animationen verwendet wird, ist der Boden x, y und die Höhe ist z.


In Maya ist der Bildschirm X / Y und Z ist senkrecht zum Bildschirm.
jhocking

Abgestimmt, weil die Frage "Warum" nicht "Wie" ist, fehlen die Gründe, warum es so ist, wie es ist, und es wird nur wiederholt, wie es ist.
Maik Semder

Nun, fairerweise ist das erste Wort "weil" dh. Diese Antwort beginnt mit einer Begründung. Vielleicht ist es keine gute Erklärung, aber es ist eine Erklärung.
jhocking
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.