我在学校得知z轴朝上。在Blender等建模软件中也是如此。但是,在许多游戏中,y轴都向上。
是什么原因?
我在学校得知z轴朝上。在Blender等建模软件中也是如此。但是,在许多游戏中,y轴都向上。
是什么原因?
Answers:
我认为坐标轴的方向是来自关键域不同的不同域的保持,并且X / Y与该关键平面对齐。在某些应用中,地平面是最重要的,因此X / Y是地,Z垂直于该地。然而,对于游戏而言,关键平面通常是屏幕(尤其是当屏幕为2D并刚开始过渡到3D时),因此X / Y是屏幕,然后当游戏进行3D时Z垂直于屏幕。
您可以看到两种最大的3D美术工具之间的这种区别:3ds max和Maya。Z轴在3ds max中向上,因为它来自建筑工具,而Y轴在Maya中,因为它来自电影制作工具。
在将任何特定工具与您在学校学到的东西进行比较时,要意识到的重要一点是,它们都是任意的。只要保持所有内容一致并在不同坐标系之间正确平移,轴的指向方式实际上就无关紧要。
从3D可以做的所有事情开始,就是屏幕空间旋转立方体或视差滚动或类似的东西,这是最古老的。在此类应用中,Z是“深度”,因为X和Y是屏幕平面的轴。随着演示变得越来越先进,原来的约定仍然存在,因为不更改任何可行的方法会更容易。
至于为什么今天的游戏正是以Y为纵轴-那里有很多写得不好的教程没有解释这种差异。通常,将主运动平面放在X和Y轴上最有用(这样,大多数2D计算不需要在代码中交换轴)。对于大多数侧滑车,它与屏幕平面(X / Y)很自然地重合。对于诸如此类的冒险游戏,X / Y可以很好地用作水平面(垂直于重力方向),因为它可以完美地映射到游戏内地图,游戏手柄控件,地形高度图和许多其他东西。
据我所知,Y =向上/向下,Z =深度基于物理学,其中重力始终沿(-Y)方向,然后添加3D意味着您不想更改基本面,所以它变得深度。
在Z =上/下方法上,尽管这是数学家的回想。因为X / Y是在Z轴延伸时平放在桌子上的纸上绘制的,所以它从纸上伸出,因此向上。尽管您的许多工程师也将使用此约定。
关于给定工具使用的约定:Maya和Unity具有Y-up(可能是由具有物理学背景的人设计的)。而3DsMax和Unreal具有Z-up(可能由数学家/工程师设计)。尽管也可以说,由于必须使用一致的系统,所以这些决定也可能只是一日做出的一项拆分决定。
因为这个问题集中在建模工具上,并且放在游戏开发问答网站上。您可能要研究将要导出到的坐标系,并确保遵循该坐标系。
还意识到轴系统的某些系统是硬性设置的,并且是永久性的,而其他系统则可以修改(认为可以在Blender和Unreal中进行更改,但可能会出错)
因为游戏中使用的坐标系基于显示器的尺寸。当计算机渲染任何东西时,它从左上角开始,给出x和y坐标为[0,0]。随着渲染向屏幕右侧进行,x值分别增加,当渲染向下移动时,y值也随之增加。坐标系基本上是2D空间的坐标系,除了原点位于左上角而不是屏幕中心。
在3D包(例如3DsMax和Maya)中,它们根据对他们重要的东西有自己的x和y坐标定义。3DsMax基于建筑设计,如果在2D平面上绘制原理图,则y向上。在Maya中,主要用于动画制作,因此地面为x,y,高度为z。