查看: 1439|回复: 3

一种face to screen方法疑惑

[复制链接]

该用户从未签到

发表于 2012-11-24 21:09:49 | 显示全部楼层 |阅读模式
用getModelViewMatrix()获取模型视角矩阵modelview
osg::Vec3d px = osg::Matrix::transform3x3( modelview, osg::X_AXIS );
osg::Vec3d py = osg::Matrix::transform3x3( modelview, osg::Y_AXIS );
px.normalize(); py.normalize();
为什么px,py就能象征着eye坐标系下的x,y轴呢?即eye坐标的x,y轴在局部坐标系下的坐标

我作以下推,为何推不出了?
coords局*glmodelmatrix=coords世
coords世*glviewmatrix=coords眼
=>coords局*glmodelview=coords眼   
=>coords眼*inverse(glmodelview)=coords局
求点化

该用户从未签到

 楼主| 发表于 2012-11-25 11:39:33 | 显示全部楼层
看来还是自己结帖吧。。
transform3X3(mat,vec)功能是vec*mat-T(转置矩阵),注意3X3,它很有效的屏蔽了translate分量。
另外transform3X3(vec,mat)是vec*mat,这就不用多说了。
另外一点值得说的是,旋转矩阵的逆矩阵就等于它的转置矩阵。
例如:绕Z轴旋转mat{(cosy,siny,0,0),(-siny,cosy,0,0),(0,0,1,0),(0,0,0,1)}
可以计算出mat*mat-T=1。既然这样我的问题就不复存在了。仅供其他新手普及一下知识吧。

该用户从未签到

发表于 2012-11-26 10:08:42 | 显示全部楼层
要正交矩阵才可以

该用户从未签到

 楼主| 发表于 2012-11-26 13:13:58 | 显示全部楼层
liuzhiyu123 发表于 2012-11-26 10:08
要正交矩阵才可以

纯平移,旋转,缩放都是正交矩阵,但是转置矩阵能作逆矩阵用的仅旋转矩阵才对。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表