码迷,mamicode.com
首页 > 其他好文 > 详细

用矩阵旋转相机

时间:2015-10-20 15:25:07      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

modelMatOfCamera=inverse(veiwMat)

newModelMatOfCamera=modelMatOfCamera*rotMat,这里注意rotMat要右乘modelMatOfCamera,因为我们想在相机的局部空间里旋转相机(即原地扭头),而不是想在世界空间旋转相机(让相机绕着世界原点转)。

则可得新的视图矩阵为:

newViewMat=inverse(newModelMatOfCamera)

或者也可以计算新的up,eye和center:

newUp=secondColOf(newModelMatOfCamera)

newRight=firstColOf(newModelMatOfCamera)

newDir=-thirdColOf(newModelMatOfCamera)

newEyePos=oldEyePos,即eyePos保持不变

newCenter=newEyePos+newDir

这样就得到了newUp,newEyePos和newCenter

----

注意,相机的viewMat即相机modelMat的逆矩阵。

由相机的modelMat各列可直接提取出相机空间轴向量和相机位置坐标。

由相机的viewMat各行可以提取出相机的空间轴向量(第四个元素要强制变为0),但是不能直接提取出相机的位置坐标。

参考:http://user.qzone.qq.com/350479720/blog/1310061051

用矩阵旋转相机

标签:

原文地址:http://www.cnblogs.com/wantnon/p/4894863.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!