查看: 1418|回复: 8

osg中观察方位涉及到的知识

[复制链接]

该用户从未签到

发表于 2013-5-30 16:39:49 | 显示全部楼层 |阅读模式
一直对矩阵、相机、中心点之类的概念搞不清楚,想通过osg渲染场景中对观察方位的设置来认识下这些概念!

该用户从未签到

发表于 2013-5-30 16:50:34 | 显示全部楼层
跟OpenGL 中的概念是一样的,相通

该用户从未签到

 楼主| 发表于 2013-5-30 16:59:04 | 显示全部楼层
惭愧,我OpenGL都木有学过。。

该用户从未签到

发表于 2013-5-30 19:15:52 | 显示全部楼层
网上讲这些的资料很多,可以自己找找

该用户从未签到

 楼主| 发表于 2013-5-31 09:11:00 | 显示全部楼层
没找到这块讲得比较细的资料,要不版主帮忙推荐一个

该用户从未签到

发表于 2013-5-31 09:34:25 | 显示全部楼层
多看几个 就是详细的了  随便找了一个 http://www.zwqxin.com/archives/opengl/opengl-matrix-what.html

该用户从未签到

 楼主| 发表于 2013-5-31 16:00:16 | 显示全部楼层
本帖最后由 hunter_wwq 于 2013-5-31 16:00 编辑

四元素是怎么来确定旋转方向的?公司项目里在设置观察方位的时候四元数是这么设置:
上:(0,0,0,1) 下:(1,,0,0,0) 左:(1,-1,-1,1) 右:(-1,-1,-1,-1) 前:(1,0,0,1) 后:(0,-1,-1,0)。哎,看不懂啊

该用户从未签到

 楼主| 发表于 2013-5-31 16:22:07 | 显示全部楼层
这是设置观察方向为右的代码:
  1.                         osg::Vec3d homeEye, homeCenter, homeUp;
  2.                         manipulator->getHomePosition(homeEye, homeCenter, homeUp);       
  3.                         osg::Matrix matrix(osg::Matrix::rotate(osg::Quat(-1, -1, -1, -1))*osg::Matrix::translate(homeCenter)*osg::Matrix::translate((homeCenter-homeEye).y(),0,0));
  4.                         manipulator->setByMatrix(matrix);
复制代码

该用户从未签到

 楼主| 发表于 2013-5-31 17:06:50 | 显示全部楼层
osg::Marix::rotate(osg:uat(-1, -1, -1, -1))返回的矩阵是
0, 1, 0, 0
0, 0, 1, 0
1, 0, 0, 0
0, 0, 0, 1
这样旋转一下怎么就是向右看了呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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