矩阵在游戏开发中的平移变换:
刚开始看3D数学学了矩阵之后并不明白他在游戏中的实际应用到底是怎么回事。
比如(1,0,0)可以表示一个点,也可以表示一个向量,当作为一个点沿x轴平移一个单位之后他的结果是(2,0,0),但是作为一个向量平移之后他的结果是不变的。因此我们需要用到矩阵去进行变换。
一般使用4*4的矩阵进行变换,可能会有人想为什么不用3*3,那样不正好吗?首先先设置一个矩阵M,把一个点放在一个向量v中,v*M=w,w就是变换之后的矩阵,但是还是如上面的例子一样,作为一个点和向量平移之后的结果不同,因此不能用3*3矩阵去表示。
那为什么用4*4就可以呢,请继续往下看。
平移
比如一个点D(x,y,z)要进行平移,我们只要将一个平移向量Q(tx,ty,tz)与其相加就行了,平移之后就是(x+tx,y+ty,z+tz),但是是4*4的矩阵所以我们要增加一个维度w,则行向量为[x,y,z,w]。
设位移向量b=(tx,ty,tz),点(x,y,z)经过位移之后的点为(x+tx,y+ty,z+tz).
如果我们把偏移量放在斜边上的三个位置,则变换后只是简单的倍数关系

如果把偏移量放在最后一行的三个位置则是于位移偏量的相加,第四个数为w*w
这样就很明显看出(x,y,z)的变换。
如果(x,y,z)是坐标就让w=1;
如果(x,y,z)是向量就让w=0
unity中输出物体矩阵信息测试:

缩放:
缩放可以改变一个物体的大小形状,在unity中进行变化就可以通过倍数关系的矩阵,可以采用下面的形式:

这样就放大了a倍。
举个例子,比如通过一个最小点(-4,-4,0)和一个最大点(4,4,0)来定义一个正方形,希望将其沿x轴缩小0.5倍,y轴放大2倍,z轴不变,则我们对应的缩放矩阵则是:


旋转:
先说下旋转该怎么表示,在2D旋转中:

p旋转到q可以得到以下形式的构造矩阵:

所以在3D旋转中一个轴的旋转可以得出:

那么最后三个轴,也就是一个物体的旋转可以推导为:

推导过程很复杂,有兴趣可以看一下。
参考文献:《3D数学:图形与游戏开发》

矩阵在游戏开发中的应用相关推荐

  1. 3D游戏开发中的矩阵详解

    矩阵很多同学没有接触过,所以感觉很难,很复杂,其实只要学过矩阵的同学都知道,矩阵运算并不难.今天我们给大家讲讲游戏开发中的矩阵的运算. 这里有个游戏开发交流小组 大家可以一起来学习交流哦 1:矩阵是什 ...

  2. 游戏开发中的矩阵与变换

    游戏开发中的矩阵与变换 介绍 矩阵组件和恒等矩阵 缩放转换矩阵 旋转变换矩阵 变换矩阵的基础 翻译转换矩阵 全部放在一起 剪切变换矩阵(高级) 转换的实际应用 在转换之间转换位置 相对于自身移动对象 ...

  3. 游戏开发中的进阶向量数学

    游戏开发中的进阶向量数学 飞机 到飞机的距离 远离原点 以2D方式构建平面 飞机的一些例子 3D碰撞检测 更多信息 飞机 点积具有带有单位向量的另一个有趣的属性.想象一下,垂直于该矢量(并通过原点)的 ...

  4. 【转载】【《Real-Time Rendering 3rd》 提炼总结】(九) 第十章 · 游戏开发中基于图像的渲染技术总结

    本文由@浅墨_毛星云 出品,转载请注明出处.   文章链接: http://blog.csdn.net/poem_qianmo/article/details/78309500 这是一篇近万字的总结式 ...

  5. 游戏开发中的数学和物理算法10-18

    1.标量 标量只有大小没有方向. 2.矢量 矢量既有大小又有方向. 3.常用举例: 物理上常用的矢量与标量的对应概念有:速度和速率:距离和位移等.如图: 距离: 假设A到B的距离为a,B到C的距离为b ...

  6. 【《Real-Time Rendering 3rd》 提炼总结】(九) 第十章 · 游戏开发中基于图像的渲染技术总结

    本文由@浅墨_毛星云 出品,转载请注明出处.   文章链接: http://blog.csdn.net/poem_qianmo/article/details/78309500 这是一篇近万字的总结式 ...

  7. 游戏开发中必备的数学知识(一)——向量

    3D空间中的向量 向量:只有长度和方向,不含有位置信息的量,也就是说,两个向量只要长度和方向相同,则二者相同. 左手坐标系和右手坐标系 同样是三维的坐标系,两者的差别在Z轴上面.在左手坐标系中,Z轴正 ...

  8. 坦克大战游戏开发中的设计模式总结

    坦克大战游戏开发中的设计模式总结 github地址: https://github.com/2017403603/TankGame_Simple1.0.git https://github.com/2 ...

  9. 游戏开发中的基本物理学知识

    第三章:不能再简单的世界 在真正开始编写之前,先回顾一下初中学过的经典物理的知识,OK,闭上眼睛想三分钟,嗯,动量守恒,摩擦系数,胡克定律,弹性碰撞...是不是突然想到了很多,但是并不系统,这里就简单 ...

最新文章

  1. chrome浏览器本地文件支持ajax请求的解决方法
  2. C#使用剪切板复制程序
  3. 使用html元素的getBoundingClientRect来获取dom元素的时时位置和大小
  4. 微软官方首度回应黑屏恐慌:不强制 不诉讼
  5. Failed to connect to database. Maximum number of connections to instance exceeded
  6. tensorflow错误:InvalidArgumentError (see above for traceback): Cannot assign a device for operation
  7. WebForm控件多字段绑定
  8. 05-用两个栈实现一个队列
  9. 游戏开发者“谈虎色变”的游戏审批流程到底是怎么一回事?
  10. 苍天有眼,我终于搞定了win7使用建行华大智宝U盾的问题了!
  11. SpringBoot+Mybatis-Plus+Shiro整合的RBAC权限系统
  12. 计算机的主要配件是哪两个,组成计算机cpu的两大部件是什么
  13. 【NA】埃尔米特插值法
  14. SoviChart数据可视化:条形图(Bar chart)
  15. 转载之-中值滤波均值滤波
  16. 广州车展直击:现代汽车携豪华阵容共建未来汽车生态圈
  17. java周记工作内容
  18. 帝国网站服务器,帝国CMS程序服务器迁移的方法
  19. 用Python将PPT转换PDF
  20. liunx系统基础知识

热门文章

  1. 云桌面有哪些优势-为什么企业使用云桌面是趋势
  2. SEM竞价|这5个方面重要性你理解透没有?
  3. Mov文件格式对mdat和moov的分析
  4. 开源软件的许可证(License)
  5. 计算机学院特色迎新标语,有创意的迎新,计算机学院用代码写迎新条幅,学弟学妹表示一脸懵...
  6. 滤波电容值得选取-ESR
  7. 生鲜配送系统源码功能介绍
  8. STP——BPDU报文
  9. 用php语言说句情话,说给女朋友的感动情话50句
  10. 【历史上的今天】7 月 15 日:Mozilla 基金会正式成立;Enigma 密码机的首次工作;任天堂推出 FC 游戏机