我们通常认为当前世界是一个三维的世界,用坐标系来表示就是XYZ,在3D游戏世界里也是用这样的三维坐标系来表示的

X代表水平坐标,Y代表垂直坐标,Z代表的是由屏幕往里的一个深度坐标,也就是垂直于屏幕的坐标轴。

如下图,在一个3D世界里,绿色代表Y坐标,红色代表X坐标,而垂直于屏幕的蓝色是Z坐标

这样在一个3D世界里面就可以方便的表示一个物体的位置信息和旋转信息。

那么什么是万向节锁?

其实就是一个物体在一个3D世界里面随着旋转顺序和旋转角度的改变,导致物体只能在一个固定的平面旋转,无法旋转到你预想的角度。

由于物体的旋转,物体的坐标轴方向也发生了改变,导致其中2条坐标轴发生了重合。

当你围绕着重合的坐标轴旋转时,物体的旋转方向始终在一个平面上旋转。

比如在Unity3D 中我们把一个物体按照先沿X轴旋转90度。

3D世界里面的人物沿X轴旋转了90度,人物的头看向了下方也就是Y轴的反方向。

此时物体的坐标轴也发生了改变,那么是哪个轴发生了改变呢?

可以自行想象一下。

其实只有Y轴发生了改变,由于物体围绕X旋转了90度,那么这个时候的Y轴也围绕X旋转了90度,也是和原来的Z轴重合了,原来的Y轴是由人物的脚指向头这个方向的,当人物围绕X轴旋转90度后。

Y轴还是按照由人物的脚的方向指向了头,也就刚好是垂直于屏幕的。

这样就导致了,当前的Y轴和原来的Z轴重合了

这个时候你可能会想既然Y轴改变了,Z轴也会改变啊,原来的Z轴是从人物的身体由屏幕外指向屏幕里的,那么当物体围绕X轴旋转后,那么此时Z轴还是应该由人物的身体穿过人物的背面,也就是当前的绿色坐标轴。

按照我们的社会经验物体围绕X轴旋转90度后,Z轴和Y轴只是交换了位置而已啊。

但是其实在3D游戏世界里面不是这样去定义的。

而是按照陀螺仪的原理去解释的。

我们看下图,一个陀螺仪装置:

陀螺仪的装置非常简单,中间有一根竖轴,穿过一个圆盘。

圆盘称为转子,竖轴称为旋转轴。转子用金属制成,增加质量,从而增大惯性。竖轴外侧是三层嵌套的圆环,它们互相交叉,带来了三个方向自由度的旋转。

简单分解后就是如下图:

假如把绿色圆盘的转轴称作为Y轴,红色圆盘的转轴称作为X轴,蓝色圆盘的转轴称作为Z轴。

那么当绿色圆盘围绕它的转轴旋转时,并不会改变红色和蓝色旋转轴方向的变化。

当红色圆盘围绕着它的转轴旋转时,绿色圆盘的转轴方向发生了改变。

当蓝色的圆盘围绕着它的转轴旋转时,绿色和蓝色的转轴方向都发生了改变。

当红色圆盘围绕转轴旋转90度后

绿色圆盘的转轴和蓝色圆盘的转轴重合了,而红色圆盘的转轴方向并没有改变,这个时候就发生了万向节死锁现象。

绿色圆盘的旋转和蓝色圆盘的旋转都在同一个平面上旋转了,只要红色圆盘不发生改变,不管如何旋转绿色和蓝色圆盘都无法解除这种状态。

如在Unity3D中当把物体旋转围绕X轴旋转90度后。

把人物围绕Y轴再旋转40度后:

把人物围绕Z轴再旋转40度后:

我们发现物体不管是围绕Y轴还是Z轴旋转,都只是在一个平面旋转,而不是不同的平面了。

如果开始只把物体围绕X轴旋转89度的话,结果又会不同了。

欢迎关注公众号:理想的键盘。学习更多计算机知识

3D游戏世界里的万向节锁相关推荐

  1. Google 要在游戏世界里训练 AI 了!

    现在,Google将通过强化学习和虚拟世界来"发展"更智能的算法了! 智能设计与进化不仅仅是人们在世界观上的一个分歧.这也是人工智能社区的一个分歧.直到几年前,AI的主要用途还只是 ...

  2. 3D游戏建模真的很累吗?前景怎么样?需要什么基础?

    所有行业都是一样的,没有什么容易的,只不过这一行是偏向于技术的,一个有好的建模师月薪10k+是很常见的,这个需要有自己刻苦学习的成果. 游戏建模前景 在游戏模型行业,你基本不用担心找不到工作,因为游戏 ...

  3. 3D游戏建模真的很累吗?前景怎么样?又需要哪样的基础

    所有行业都是一样的,没有什么容易的,只不过这一行是偏向于技术的,一个有好的建模师月薪10k+是很常见的,这个需要有自己刻苦学习的成果. 游戏建模前景 在游戏模型行业,你基本不用担心找不到工作,因为游戏 ...

  4. 3D游戏引擎剖析【较全面】

    转自:http://blog.csdn.net/is01sjjj/article/details/430125 第1部分: 游戏引擎介绍, 渲染和构造3D世界 介绍 自Doom游戏时代以来我们已经走了 ...

  5. 次世代3D游戏究竟有什么不同,看人物建模与场景搭建,第一眼就有答案!

    次世代3A大作的特点,玩家的追求就是次世代游戏的要求 对于广大的游戏玩家来说,对游戏的分类多是以玩法,将其分为RPG游戏.FPS游戏.RTS游戏等类型.但我们还可以制作技术将其以时代划分,而" ...

  6. 转:3D游戏引擎技术剖析

     转自 http://blog.csdn.net/jbjwpzyl3611421/article/details/12681047 3D游戏引擎技术剖析 分类: Unity3D2013-10-13 1 ...

  7. 转行学习3D游戏建模,你需要了解的职业分类及发展

    王者荣耀.LOL.梦幻西游,近几年在线人数破千万,带动了越来越多的企业在游戏上的开发,3D游戏建模将游戏的画面感.真实感高度还原,给游戏者更强烈的体验感,更加身临其境. 游戏模型师是目前非常热的职业岗 ...

  8. 若说耳机世界里有一股清流,那这款QCY耳机肯定是其中之一

    ▶前言: 对于喜欢音乐的人群来说,耳机必然是最常用的音频设备.当然,耳机的用途也不仅仅是畅听音乐,用途非常广泛. 不同的使用人群.消费人群,会选择不同类型.价位的产品.其中有物超所值的.有持平性价比的 ...

  9. 什么是3D游戏建模?成为一个游戏建模师需要具备哪些能力?

    顾名思义,就是建立一个立体的游戏模型,游戏模型是指游戏内的场景.角色和道具按照比例制作设计成的物体,是设计师为游戏打造的场景动画建筑模型. 成为一个建模爱好者,需要具备什么? 热情:热情是关键性因素, ...

最新文章

  1. configure,pkg-config和PKG_CONFIG_PATH
  2. rabbitmq的整体架构一览
  3. Python学习笔记--数据类型
  4. Linux vim使用心得--一些高级话题
  5. SAP Spartacus 服务器端 nodejs 应用里渲染 Angular Component 的一个例子
  6. Qt从入门到放弃_0x01:建立项目
  7. pyqt5使用本地摄像头
  8. AndroidVector初探
  9. 终于把Android Studio用起来了,及体验
  10. 电脑截图怎么转换成文字?学会这个方法,轻松实现
  11. $.ajax的dataType属性
  12. 一文详解单目VINS论文与代码解读目录
  13. 前端upload标签使用方法
  14. nginx 无法打开 libpcre.so.1问题解决办法
  15. 笔记篇 攻防测试——入侵网站10小技巧
  16. 中央空调管理系统的在楼宇节能方案中的应用
  17. Linux内核编译出来模块过大
  18. 【2013-10-3前】Matlab笔记1
  19. 【putty】html中调起客户端putty
  20. Androidstudio 运行检测不到模拟器

热门文章

  1. 计算机毕业设计PHP+安卓壳爱如你手机壳店铺APP(源码+程序+lw+远程调试)
  2. 2021-11-6完整linux内网渗透实战笔记(域/非域对于linux其实区别不大+宝塔后台渗透+稻壳DocCMSsql注入+交互式shell用python解决乱码问题)
  3. VirtualBox中出现UUID have already exists ,并且数字键盘numlock效果相反
  4. 最全模型效果评估报告上线,百度飞桨企业版EasyDL助力模型效果快速优化
  5. 笔记-公共政策[0145]
  6. Gogole C++ 编程风格(一)
  7. 华为手机助手安卓版_lol手游助手IOS版手机下载_lol手游助手安卓版下载
  8. [面试技巧]如何从容面对应聘登记表的“薪水期望值”栏
  9. 金融危机来了,生存还是毁灭?
  10. 微信小程序云开发实现增删改查操作