查看: 2784|回复: 4

osg 的视角(FOV)是多大?

[复制链接]

该用户从未签到

发表于 2013-3-28 23:35:30 | 显示全部楼层 |阅读模式
测试了下,
  1.         osg::ref_ptr<osg::ShapeDrawable> RegularHexahedron1 = new osg::ShapeDrawable;
  2.         RegularHexahedron1->setShape( new osg::Box(osg::Vec3(50.0f, 0.0f, -200.0f), 50.0f, 50.0f, 50.0f) );

  3.         osg::ref_ptr<osg::ShapeDrawable> RegularHexahedron2 = new osg::ShapeDrawable;
  4.         RegularHexahedron2->setShape( new osg::Box(osg::Vec3(-50.0f, 0.0f, -200.0f), 50.0f, 50.0f, 50.0f) );
复制代码
  1.         view->getCamera()->setViewMatrixAsLookAt(
  2.                 osg::Vec3(0.0f,0.0f,0.0f), osg::Vec3(0,0,-100), osg::Y_AXIS );
  3.        
  4.         osgViewer::CompositeViewer viewer;
  5.         viewer.addView( view );

  6.         while ( !viewer.done() )
  7.         {
  8.                 viewer.frame();
  9.         }
复制代码
发现还是不能完整显示两个方块儿,两个方块共宽150,视距 200,tanV/2 = 75/200  这样估算视角不到60度

osg的视角是变化的还是固定大小? OpenGL呢?

该用户从未签到

发表于 2013-3-29 07:52:00 | 显示全部楼层
FOV 就是程序设定的(有个默认值),如果不去变动 它不会变的,漫游器只是修改distence

该用户从未签到

发表于 2013-4-1 09:44:36 | 显示全部楼层
viewMatrix和FOV没有关系,后者是projectionMatrix中设置的,默认为30,可以自己修改

该用户从未签到

 楼主| 发表于 2013-4-2 05:55:58 | 显示全部楼层
本帖最后由 superwavelet 于 2013-4-2 05:56 编辑
array 发表于 2013-4-1 09:44
viewMatrix和FOV没有关系,后者是projectionMatrix中设置的,默认为30,可以自己修改


太感谢啦

该用户从未签到

发表于 2015-5-5 14:43:35 | 显示全部楼层
楼主你好,怎么用projectionMatrix修改FOV的值?谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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