原文链接:http://www.nicemxp.com/articles/19
物体放置到世界中后,在欧拉相机模型下转换成相机坐标。
欧拉相机模型是使用位置和旋转角度(欧拉角度)定义的,其中旋转角度决定了相机的朝向。
相机位置在(camx, camy, camz),观察角度为(0,angy,0),即相机绕y轴顺时针旋转angy。如图:

如图所示,要想转换成相机坐标,首先将相机移动到原点处,这样物体的每个点都平移(-camx,-camy,-camz),如图:

物体的每个点都进行平移运算,可以通过矩阵运算完成,平移矩阵Tcam:

顶点v( world_x, world_y, world_z, 1 ) * Tcam = ( world_x - camx, world_y - camy, world_z - camz, 1)
完成平移运算后进行旋转操作,欧拉相机的指向方向是绕Y轴顺时针旋转angy,所以要想完成相机坐标变换,让相机的朝向与Z轴重合,相机和物体需要旋转 -angy,即逆时针旋转angy,如图:

这样相机位置(0,0,0),相机角度(0,0,0),就完成了欧拉相机的相机坐标变换,上面是针对相机朝向为(0,angy,0)的情况,一般情况下相机朝向为(angx,angy,angz),所以相机需要进行一系列的旋转转换,3个角度的旋转顺序有6种,我们取yxz的顺序,先绕Y轴旋转-angy,再绕x轴旋转-angx,最后绕Z轴旋转-angz。但是旋转操作需要如何计算呢,以相机绕X轴旋转为例,在相
261



被折叠的 条评论
为什么被折叠?



