[Unity基础]游戏中的数学
一、坐标系
1.世界坐标系:使用左手坐标系,即z轴方向跟人眼向前看的方向一致(右手坐标系z轴方向跟人眼向前看的方向相反)
2.本地坐标系
3.屏幕坐标系:左下为原点,右上为屏幕宽高
4.界面坐标系:左上为原点,右下为屏幕宽高(unity自带的gui使用的就是这个)
5.视口坐标系:Camera组件的Viewport Rect
6.齐次坐标系:用(x,y,z,w)来区分点和向量。例如(1,2,3,0),w为0时表示向量,为1时表示点
二、向量
1.点乘:主要用于计算两向量间的夹角,或者判断角度范围。向量a(a1,a2,a3)点乘向量b(b1,b2,b3)等于|a|*|b|*cos<a,b>,或等于a1xb1+a2xb2+a3xb3
Mathf.Asin/Mathf.Acos/Mathf.Atan:返回一个以弧度为计算单位的值
Mathf.Rad2Deg:弧度转度,相当于360/(PI * 2)
可以通过Mathf.Acos(点乘结果)*Mathf.Rad2Deg得出两向量的夹角,不过更方便的方法是:Vector3.Angle
2.叉乘:得到一个垂直于两个向量的向量。|向量a叉乘向量b|等于|a|*|b|*sin<a,b>
三、矩阵
主要用于shader中的顶点片段着色器。游戏中的移动、旋转和缩放实际上是向量与矩阵运算的结果。
定义:矩阵主要用来描述两个坐标系统间的关系,通过定义一种运算而将一个坐标系中的向量转换到另一个坐标系中。
维度:指包含了多少行和多少列。一个r x c矩阵有r行、c列。
方阵:行数和列数相同的矩阵称为方阵。方阵的对角线元素就是方阵中行号和列号相同的元素,其余为非对角线元素。如果所有非对角线元素都为0,则称这种矩阵为对角矩阵。例如:
单位矩阵:是一种特殊的对角矩阵,n维单位矩阵记作I n,是n x n矩阵,对角线元素是1,其他元素是0。例如,3 x 3单位矩阵:
向量作为矩阵使用:一个n维向量能被当作1 x n矩阵或n x 1矩阵,1 x n矩阵称作行向量,n x 1矩阵称作列向量。行向量平着写,列向量竖着写,例如:
转置:考虑一个r x c矩阵M,M的转置记作M T,是一个c x r矩阵,例如:
标量和矩阵的乘法:
矩阵和矩阵的乘法:一个r x n的矩阵A乘以一个n x c的矩阵B,结果是一个r x c矩阵,记作C。对于C中的任意元素,取A的第i行和B的第j列,将行和列中的对应元素相乘,然后将结果相加(等于A的第i行和B的第j列的点积):
向量与矩阵的乘法:因为向量能被当作一行或一列的矩阵,因此同上。向量乘以一个矩阵,相当于执行了一次坐标转换:
上面表示将向量(x, y, z)转换到以p、q、r为坐标轴的坐标系中。
四、四元数
与旋转相关的数。一般情况下可以由欧拉角代替,但欧拉角会产生万向锁问题,所以旋转最好使用四元数。
[Unity基础]游戏中的数学相关推荐
- 游戏中的数学之3D基础
目录 1.方向向量 2.矩阵旋转 3.欧拉角 4.Quaternion 5.互相转换 1.方向向量 1: forward, up, right为单位方向向量,世界坐标系下的 2: 单位向量 * 标量 ...
- 3D游戏中的数学运用
原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 Unity3D引擎技术交流QQ群:[119706192]本文链接地址: 3D游戏中的数学运用 [01]3D游戏数学简介 总导:游戏中会使用 ...
- Unity制作游戏中的场景
Unity制作游戏中的场景 1.2.3 场景 在Unity中,场景(Scene)就是游戏开发者制作游戏时,所使用的游戏场景.它是一个三维空间,对应的三维坐标轴分别是X轴.Y轴和Z轴本文选自Unity ...
- 游戏中的数学与物理学 第二版_在游戏中启蒙幼儿的数学能力和逻辑思维能力...
同事奥北是个很有教育想法的妈妈,怀孕的时候就学习很多育儿知识,孩子出生后,她就在生活中,有意识的去培养孩子的各种能力.最近,孩子到了3岁后,她想要开始逐步培养孩子良好的逻辑思维能力.她本想着送孩子到早 ...
- Unity实现游戏中坦克运动控制(一)
Unity实现游戏中坦克运动控制(一) 导入模型 控制上下左右移动 导入模型 导入坦克模型资源文件,一般包含fbx格式模型文件和tga格式的贴图文件.一般导入的模型由3dmax制作,与unity中单位 ...
- 游戏中的数学与物理学 第二版_在数学课堂中适度开展游戏活动,可以提高课堂教学效率...
[摘要]小学生是以无意注意为主的,而无意注意又受兴趣的影响,更何况数学是一门比较抽象的学科.因此,在数学课中适度引入游戏是很有必要的.基于学生的心理特征,学生需要游戏,恰当的游戏不仅能够调节课堂气氛, ...
- 游戏中的数学之魔塔数学
前言:这几天心血来潮找找以前玩过的老游戏,就随手下载了一个PK32.今天早上又看到光良50岁的热搜,一方面感叹时光飞逝,一方面也感觉到作者刘景雄在代码方面的强悍. 足足五页的游戏却只有7.3M的软件大 ...
- 游戏中的数学与物理(一)
(看了<游戏开发的数学与物理>,感觉很不错,记下点东西. 这是本"图灵程序丛书",对于这个系列的书,我一直是蛮喜欢的,感觉书的内容.排版等,都让人看着很舒服.) 1.1 ...
- Unity制作游戏中改名系统(第一次改名免费、改名提示、充值获得改名次数等 )
Unity游戏制作中UI界面名字修改 游戏名称修改 简单粗暴直接上代码 关于充值系统的概念 游戏名称修改 现在网络游戏中名字是标新立异.展示自己独一无二的个性的方式之一,名字越来越烧,操作越来越低,也 ...
最新文章
- putty完全使用手册--多窗口---git提交---连接数据库--自动日志显示
- 搜狗·疫情数据爬取(Python)
- android 多个dialog 交替显示,Android如何在一个AlertDialog中一个接一个地显示两个ListViews...
- python代码需要背吗-Python面试必须要看的15个问题
- IOS6学习笔记(四)
- apache mysql php实现最大负载的方法_如何架设高性能nginx+php+mysql搭配的服务器,解决高并发问题...
- C++ string源码
- 2015年第六届蓝桥杯C/C++ A组国赛 —— 第一题:方格填数
- MySQL之mysql客户端工作的批处理一些使用手法
- UGUI- 单列列表(VerticalLayoutGroup)
- TextureUnpacker 分割 Texturepacker 产生的图片 支持windows 和 mac
- matlab中input输入多个数_python怎么一次输入两个数
- xmind快捷键_小冰笔记 | 请在XMIND里写下你的MIND!
- 职工信息管理系统(c语言实现)
- FPGA入门程序(1)——流水灯
- Python 列表,for循环,元组的使用【修改、添加、删除、排序、切片】w
- Android/iOS及设计中ARGB颜色值百分比透明度换算
- Python 对象烤地瓜
- 多股票投资组合+马科维茨计算组合
- SQLI DUMB SERIES-8