坐标系规定
一般使用左手坐标系,+x,+y,+z分别指向右方、上方、前方。
多坐标系
世界坐标系:协议某个点为原点,其他所有点都有具体不变的坐标,能够用世界坐标系描述其他坐标系的位置,而不能使用更大的、外部的坐标系来描述世界坐标系。
物体坐标系:和物体相关联的坐标系,与某个物体有互动关系。例如我的杯子在左边,我的电脑在我前面。
摄像机坐标系:摄像机即是观察者,可以看作一个特殊的物体。在渲染中,为了节省资源,将摄像机可见的内容渲染
惯性坐标系:原点与物体坐标系重合,但轴平行于世界坐标系的轴。从物体坐标系转换到惯性坐标系只需要旋转,从从惯性坐标系转换到世界坐标系只需要平移。可把惯性坐标系当作物体坐标系与世界坐标系的中转站,方便用于表达3D世界中事物本身的关系和与全局的关系。
向量运算
向量的模:简单说就是向量的大小或长度。
单位向量:标准化向量或法线。
标准化向量:
向量与标量相乘:
向量加减:
向量距离:
向量点乘(优先级高于加减法):
点乘结果描述了两个向量之间的"相似"程度,结果越大,两个向量越接近。如果a和b中任意为0,则结果为0。
向量叉乘(仅适用于3D向量):
叉乘得到的结果垂直于原来两个向量。
a×b的长度等于向量的大小与向量夹角sin值的积,如下:
备注:
1,如果a、b平行或任意一个为0,结果为0。叉乘对零向量的解释为:它平行于任意其他向量,而点乘的解释是和其他任何向量垂直。
2, 叉乘的方向:将a的头和b的尾相接,并检查从a到b是顺时针还是逆时针。在左手坐标系中,如果a和b呈顺时针,那么a×b指向平面向外方向,如果a和b逆时针,a×b指向平面内方向。
3, 叉乘的运算优先级和点乘一样,乘法在加减法之前。当点乘和叉乘在一起时,叉乘优先计算:a·b×c=a·(b×c)。标量和向量间不能叉乘。