一、从坐标说起
在unity里一切的渲染都要从坐标系说起。
坐标系的分类 模型坐标系、世界坐标系、摄像机坐标系、屏幕投影坐标系、2D中模型坐标系。
在一些3D建模软件中,为了方便描述模型物体本生间的关系,将物体在一个欧几里德3维坐标系中对物体建模。模型空间在处理本生的相对关系比较有用,但是为了表达多个物体间的关系,就需要一个更高层次的坐标系统对他们进行统一,这就是世界坐标系。一个点从模型坐标到世界坐标的变换 就可以借助矩阵。
摄像机坐标系:也叫视空间,也称相机空间,是为了方便表达以相机为世界的中心所有物体的一个坐标系。
屏幕坐标系:将三维物体投影到屏幕二维空间。
二、向量
Unity中 有数据结构Vector ,可以表示一个点,也可以表示方向,速度,向量。至于要赋予它什么意义正是程序员所要思考的问题。
向量点积,两个向量的点积的结果是这两个向量的夹角对应的弧度值。是一个标量。 Cos(a)=Dot(v1,v2)/||v1|*|v2||
向量叉积,表示垂直两个向量的向量,要注意它的方向性。 它的应用在光照计算中的计算法向量 , 和背部剔除。
三、矩阵
矩阵要注意的地方:
矩阵的维度和记法 、矩阵的转置 、 矩阵和 标量 与矩阵的乘法。
方阵、行列式、代数余子式、
使用矩阵可以进行 旋转,旋转矩阵,缩放矩阵,投影矩阵,镜像矩阵,切边矩阵,变换组合。
噔噔 ,更详细见《3D数学基础:图形与游戏开发》