为什么在很多游戏中Y都升高?


19

我在学校得知z轴朝上。在Blender等建模软件中也是如此。但是,在许多游戏中,y轴都向上。

是什么原因?


实际上,在大学里,很多人在绘制2D图像时都向上绘制y(猜测是因为在2D中y也是向上的,因此在显示示例时,我们通常只是将3D用作2D的概括)。不记得我们在学校真的学到了一条规则。
Aufziehvogel 2012年

4
简单的答案:几百万年来,数学家在纸上绘制了XY图,其中X左右移动,Y上下移动,当添加深度时,Z进入纸中。答案不是那么简单:没人在任何事情上达成共识,为什么他们在任意轴上达成共识?=)
Patrick Hughes


我也发现该计数器对于2D也是直观的,也许是因为我从XNA开始,而Y下降了。但是应该先绘制背面的东西,然后在屏幕空间中更高的位置通常意味着距离更远。这会导致在绘制图块图时翻转一些y,并且逻辑变得笨拙。
Madmenyo 2015年

请注意,如果我们最初使用Z向上的ZY图,那么就不会有这个问题-我们只需引入X轴即可完成。(或者,类似地,如果我们在YX图表中添加W轴,我们也不会感到困惑。)
Little Endian

Answers:


46

我认为坐标轴的方向是来自关键域不同的不同域的保持,并且X / Y与该关键平面对齐。在某些应用中,地平面是最重要的,因此X / Y是地,Z垂直于该地。然而,对于游戏而言,关键平面通常是屏幕(尤其是当屏幕为2D并刚开始过渡到3D时),因此X / Y是屏幕,然后当游戏进行3D时Z垂直于屏幕。

您可以看到两种最大的3D美术工具之间的这种区别:3ds max和Maya。Z轴在3ds max中向上,因为它来自建筑工具,而Y轴在Maya中,因为它来自电影制作工具。

在将任何特定工具与您在学校学到的东西进行比较时,要意识到的重要一点是,它们都是任意的。只要保持所有内容一致并在不同坐标系之间正确平移,轴的指向方式实际上就无关紧要。


3

从3D可以做的所有事情开始,就是屏幕空间旋转立方体或视差滚动或类似的东西,这是最古老的。在此类应用中,Z是“深度”,因为X和Y是屏幕平面的轴。随着演示变得越来越先进,原来的约定仍然存在,因为不更改任何可行的方法会更容易。

至于为什么今天的游戏正是以Y为纵轴-那里有很多写得不好的教程没有解释这种差异。通常,将主运动平面放在X和Y轴上最有用(这样,大多数2D计算不需要在代码中交换轴)。对于大多数侧滑车,它与屏幕平面(X / Y)很自然地重合。对于诸如此类的冒险游戏,X / Y可以很好地用作水平面(垂直于重力方向),因为它可以完美地映射到游戏内地图,游戏手柄控件,地形高度图和许多其他东西。


2

据我所知,Y =向上/向下,Z =深度基于物理学,其中重力始终沿(-Y)方向,然后添加3D意味着您不想更改基本面,所以它变得深度。

在Z =上/下方法上,尽管这是数学家的回想。因为X / Y是在Z轴延伸时平放在桌子上的纸上绘制的,所以它从纸上伸出,因此向上。尽管您的许多工程师也将使用此约定。

关于给定工具使用的约定:Maya和Unity具有Y-up(可能是由具有物理学背景的人设计的)。而3DsMax和Unreal具有Z-up(可能由数学家/工程师设计)。尽管也可以说,由于必须使用一致的系统,所以这些决定也可能只是一日做出的一项拆分决定。

因为这个问题集中在建模工具上,并且放在游戏开发问答网站上。您可能要研究将要导出到的坐标系,并确保遵循该坐标系。

还意识到轴系统的某些系统是硬性设置的,并且是永久性的,而其他系统则可以修改(认为可以在Blender和Unreal中进行更改,但可能会出错)


1

因为游戏中使用的坐标系基于显示器的尺寸。当计算机渲染任何东西时,它从左上角开始,给出x和y坐标为[0,0]。随着渲染向屏幕右侧进行,x值分别增加,当渲染向下移动时,y值也随之增加。坐标系基本上是2D空间的坐标系,除了原点位于左上角而不是屏幕中心。

在3D包(例如3DsMax和Maya)中,它们根据对他们重要的东西有自己的x和y坐标定义。3DsMax基于建筑设计,如果在2D平面上绘制原理图,则y向上。在Maya中,主要用于动画制作,因此地面为x,y,高度为z。


在Maya中,屏幕为X / Y,Z垂直于屏幕。
轰动

Downvoted,因为这个问题是“为什么”而不是“如何”,它缺乏的原因为,为什么它是因为它是,只是重申怎么是。
Maik Semder

公平地说,第一个词是“因为”,即。该答案首先说明原因。也许这不是一个很好的解释,但这是一个解释。
2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.