打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
根据gluLookat求解ViewMatrix
如何根据OpenGL中的gluLookat函数求解 ViewMatrix矩阵。
视图坐标转换实际上就是把定点的坐标转换进眼睛(摄像机)坐标系中,这个操作与将眼睛转换到相应位置并设定朝向的操作相反。

来完成视图变换操作的矩阵V由两部分矩阵连乘形成的,一部分是朝向矩阵O,一部分是平移矩阵T,所以我们有:

V= OT;

朝向矩阵是由视线朝向D和眼睛的上方向U决定的,这两个方向向量叉乘得到向量C,向量C和向量D叉乘得到U‘,C,U,D(对应x,y,z),形成了眼睛坐标系的三个方向,它们属于右手坐标系,

相关的公式如下:

c = d x u,

u' = c x d,

将得到的三个变量相应的单位化,分别用这三个变量传到下面的矩阵中,就得到了转换需要的朝向矩阵O:

注意向量d的各个分量都被取了原值的负值。

而平移矩阵,则是将眼睛移动操作的反操作,如果你有眼睛的位置,直接将眼睛的位置全取原值负值就OK了,但是需要注意的一点是,此时必须先把眼睛在世界坐标系中的位置通过上面刚求出来的矩阵转换为眼睛坐标系中的位置,然后再把眼睛位置取负值。

以上红字部分是十分重要的,大多数文档均未提及。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
OpenGL学习脚印: 关于gluLookAt函数的理解
矩阵变换:矩阵是怎样变换向量的
正交矩阵
浅析机器人学位置与姿态之坐标系绕任意轴线旋转算法
齐次坐标
【为什么矩阵被叫做向量呢我知道x,y坐标系里面的任意一个坐标都是向量向量是一个带方向和大小的数但是矩...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服