Why is the negative Z-axis considered to be facing forward in Godot?

25 points · 12 comments · view on lemmy.world

12 Comments

erytau@programming.dev · 57 pts · 1y (3 replies)

Because, uh... we here in the 3D world like a little bit of pain.

xyz in 3d software

andrewth09@lemmy.world · 10 pts · 1y

I haven't done CAD/3D modeling in years. I hate this chart. Great chart, thanks for sharing.

muell@lemmings.world · 9 pts · 1y

Great chart, thanks for sharing this.

DriftingLynx@lemmy.ca · 2 pts · 1y

Without suffering, there is no art.

SkaveRat@discuss.tchncs.de · 15 pts · 1y (2 replies)

Arbitrary and historical reasons.

A good overview about why and who: https://ahmetburul.medium.com/coordinate-systems-of-3d-applications-guide-ddfa2194ed88

Personally, I'm super annoyed that Z is not up. but that's just me coming from Blender and Unreal. It makes programming 3D games more annoying, imo

Edit to add: With Godot having its origins in 2D, Z is "into the screen". and that orientation basically stuck. Why they used negative, I'm not sure

vintageballs@feddit.org · 4 pts · 1y

I think especially in 2d, using the negative direction makes sense, as things that are "higher" (closer to the screen) should occlude things that are "lower". It's the same in HTML/CSS.

TedDallas@programming.dev · 1 pts · 1y

Yeah, while initially writing my terrain generator I thought it weird to have a X,Z grid of tiles. Odd decision for Godot team. But I am used to it now.

Kissaki@programming.dev · 6 pts · 1y (4 replies)

Why not? You mean instead of the opposite? There's two "common" coordinate systems with opposing Z.

https://en.wikipedia.org/wiki/Cartesian_coordinate_system#Orientation_and_handedness

muell@lemmings.world · 0 pts · 1y (3 replies)

Well, it causes moving forward to be on the negative Z-axis instead of the positive, which isn't intuitive.

Also, when we're looking at the front of our model in the editor, the positive Z-axis faces away from us and the positive X-axis is on the left. Kinda backwards.

Maybe there's something I'm missing, but that's the point of this thread.

KindaABigDyl@programming.dev · 4 pts · 1y

Not if you think of forward as "towards you." It comes from Math. X is right, Y is up, and then when doing 3D, Z is out of the page, bc that's easiest to draw.

ulterno@programming.dev · 0 pts · 1y (1 reply)

I haven't used Godot, but from the info you gave, it seems like they started as a 2D game engine.

For something started as 3D, I would expect x and y to be on the floor and +z to be against gravity.

jerkface@lemmy.ca · 2 pts · 1y

Well, in 2D, one would expect x and y to map to camera up/down and camera left/right in some way, depending on where we decide the origin goes on the screen. In the game world, gravity might be +/- y; it's kind of irrelevant. In any case, z has to map to the axis the camera is looking down.

But IIRC you can just apply a global transformation and use any coordinate system you like.