1.view transformation就是处理摄像机的位置和方向,约定俗成的位置和方向就是摄像机在原点,方向朝向z轴负向(右手坐标系),所以对于任何一个位置的摄像头我们都要把它移到规定的位置和方向,为了保证你观测正确,我们要对物体做同样的变换。代码里的摄像机位置是(0,0,5)方向就是(0,0,-1)朝向z轴负向,所以只需平移回去就好。
2,3.按照我们规定的摄像机的位置和方向,自然就有一个坐标系(摄像机在坐标系的原点),根据这个坐标系去理解视锥。因为近面离摄像机近,所以应该是zFar < zNear < 0。
4.是远离了,计算过程我是按照我上面理解的去算的,不过我有个不明白的这里的z值远离了摄像机,有什么意义,再经过正交变换,然后投影不就把z轴去掉了吗?求解答。。。
5.改成位置在eye_pos,看向z正半轴的话,应该先平移再旋转,平移矩阵:
1,0,0,-eye_pos[0],
0,1,0,-eye_pos[1],
0,0,1,-eye_pos[2],
0,0,0,1
旋转矩阵:
1,0,0,0
0,1,0,0
0,0,-1,0
0,0,0,1
最终的view变换矩阵=旋转x平移:
1,0,0,-eye_pos[0],
0,1,0,-eye_pos[1],
0,0,-1,eye_pos[2],
0,0,0,1
上面都是我自己的理解,可能也有不对的地方…