网站搜索引擎优化工具,能通过淘宝网站做淘宝客吗,济南网站建设专业,百度导航最新版本本文转自我的公众号——游戏开发那些事在谈到游戏世界中的坐标轴时#xff0c;我们经常会看到这样的争论。“游戏中Y轴是向上的好么#xff1f;这你都不知道#xff1f;”“不对#xff0c;空间直角坐标系不就是Z轴向上的么#xff1f;”“拜托#xff0c;请搞清楚坐标系…本文转自我的公众号——游戏开发那些事在谈到游戏世界中的坐标轴时我们经常会看到这样的争论。“游戏中Y轴是向上的好么这你都不知道”“不对空间直角坐标系不就是Z轴向上的么”“拜托请搞清楚坐标系再来讨论好么”.....对于长期接触Z轴向上的空间直角坐标系的我也存在着同样的困惑左右手坐标系已经够让人头大了为什么连哪个轴向上都不能统一一下而后当我试图通过搜索引擎寻找答案时发现这个问题确实有不少人在讨论也终于搞清楚了其中的缘由。故事可能要从著名的三维建模软件3DS Max说起。3DS Max是公司AutoDesk第一款建模软件它于1990年发布主要用于设计和建筑领域。在建筑学中通常要先从平面图开始设计所以先在2D网格上绘制X轴和Y轴随后在将其拉伸成3D模型。很自然的他们将下一个轴设置向上即在3DMAX里面向上的便是Z轴Z-Up。这种思路与我们在学校时第一次从平面几何踏入空间几何的想法完全契合。而在1998年另一款著名的建模软件——Maya诞生了。Maya一开始主要作为动画软件系统发行广泛用于动画电影当中。与建筑领域相似当时的动画通常也是2D的即正面看Y轴向上X轴向右。不过早期的迪士尼和其他动画作品为了能在不改变2D画面效果的条件下增加维度例如2D平台游戏保留了X轴和Y轴的朝向新增的Z轴便成为了深度。当然这里也有一定程度的历史原因——由于Maya一开始为SGI的硅谷图形公司Silicon Graphics, Inc.硬件开发SGI早期提供的渲染引擎就是Y轴向上的所以Maya就跟随SGI的标准制定坐标系Y-Up。其实造成这种差异的根本原因在于你是在屏幕空间中思考还是在世界空间中进行思考。在屏幕空间中给定X和Y的屏幕坐标将Z作为深度可以方便的处理遮挡问题即Y-Up。许多渲染技术DX、OpenGL都使用“ Z缓冲区”之类的名称的来处理屏幕空间渲染三维空间的渲染最后还是会输出到屏幕空间。很明显在二维环境中Y轴向上的坐标系更有意义一些。然而在世界空间中我们通常希望像现实一样构建三维的世界。正常的三维空间示意图都将第三个坐标视为垂直方向的即Z-Up。要在世界空间中定义一个矩形则要给出其长、宽、高。如果将Y视为垂直方向那么就会陷入了一种不符合常识的情况与我们多年来接触的笛卡尔坐标系相悖。当你仔细调查一下目前流行的软件时你会发现不同的软件其坐标系默认都是不一样的。除了前面提到的两款三维建模软件另外两款著名的游戏引擎Unity与Unreal也有着不同的坐标系。受到历史因素的影响Unreal诞生时3DS Max是当时大多数开发人员选择的建模工具包Maya还没有诞生所以采用了Z轴向上的左手系坐标。而Unity3D在2000以后才正式发布采用的则是Y轴朝上左手坐标系。由于标准的不同导致我们在使用不同游戏引擎以及不同建模软件交互时需要手动处理坐标系的转换。而对于那些只接触过部分软件的人往往会保留“Z轴向上”或者“Y轴的向上”的固有印象从而造成了前面提到的争论现象。无论哪种坐标系都有其一定的道理我们理解其中的缘由并能灵活的运用即可。最后再帮大家复习一下左手坐标系和右手坐标系挥动双手的同时不妨点个赞支持一下。