论游戏开发中的矩阵

论游戏开发中的矩阵

游戏制作是指制作一个电子游戏的过程。由于游戏的类型、大小和要求不同,游戏制作所需的人员和时间也不同。以下是我对游戏开发中矩阵的初步研究,希望大家认真阅读!

1.矩阵在三维空间中的作用

(1)长方体A想绕(10,3,4)旋转50°,在X方向放大两倍,在(9,1,8)方向平移两个单位。以上变换后的新长方体各点坐标是多少?利用这个矩阵可以很容易地算出答案。

(2)知道了子坐标系在母坐标系中的位置,就可以求出外挂在子坐标系中在母坐标系中的位置。

2.矩阵的基本知识

矩阵可以描述任何线性变换。线性变换保留直线和平行线,线性变换保留直线的同时,长度、角度、面积、体积等其他几何性质可能会被变换改变。简单来说,线性变换可能会“拉伸”坐标系,但不会“弯曲”或“滚动”坐标系。

(1)翻译

下面的矩阵可以在T矢量方向上平移一个点:

(2)旋转

正方向是从旋转轴的正方向看的逆时针方向,比如绕Z轴(X轴平移2,Y轴平移3,Z轴平移4)。

3.从子空间到母空间的变换

将点或方向从任意子坐标系c变换到父坐标系p的矩阵可以写成MC-p,这个矩阵表示将点或方向从子空间变换到父空间。下面的等式将任何子空间位置向量Pc转换成母空间位置向量Pp,其中PP = pcmc-p。

Ic是子空间X轴的单位基向量,这个向量用母空间的坐标表示。

Jc是子空间Y轴的单位基向量,用母空间的坐标表示。

Kc是子空间Z轴的单位基向量,这个向量用母空间的坐标表示。

Tc是子坐标系相对于父坐标系的平移。

4.坐标系中点的RST(旋转、平移和缩放)

OpenGl超集第四版第P101页说:如果一个4×4的矩阵包含了不同坐标系的位置和方向(可以看作上面的Mc-p),那么用这个矩阵乘以一个顶点Pp,就会产生一个新的顶点Pc变换到这个坐标系中(坐标仍然是相对于原坐标系的)。这个看起来像公式Pc =Pp Mc-p,错了!用Pp,把Pp的名字改成A,坐标V,完全是误导,因为是线性变换,A的坐标在新坐标系下还是V,所以和Pp = PcMc-p一致,Pp是A在新坐标系下的坐标,V在原坐标系下的坐标。

5.5矩阵变换。OpenGl

OpenGl中的矩阵变换是叠加。每次矩阵变换完成后,零点会移动到新的坐标系。下一次变换只会影响当前坐标系及其子坐标系,不会影响其父坐标系。加载单位矩阵将零点重置为原始零点。

简单的矩阵运算是不会移动零点位置的,所以用单位矩阵乘法没有效果。