查看: 2340|回复: 3

关于camera的几个问题

[复制链接]

该用户从未签到

发表于 2011-5-4 23:03:37 | 显示全部楼层 |阅读模式
我在测试一个程序的时候,有这样一段代码
  1. osg::Camera* camera = new osg::Camera;
  2. camera->setProjectionMatrix(osg::Matrix::ortho2D(-1.5, 17.75, -1.5, 13.86));
  3. camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
  4. camera->setClearMask(GL_DEPTH_BUFFER_BIT);
  5. camera->setRenderOrder(osg::Camera::POST_RENDER);
  6. camera->setUpdateCallback(new AxisCameraUpdateCallback());

  7. osg::Node* axes = osgDB::readNodeFile("axes.osg");
  8. camera->addChild(axes);

  9. return camera;
复制代码
运行效果如图所示: 无标题.png ,但我改变osg::Matrix:rtho2D(-1.5, 17.75, -1.5, 13.86)里的数值的时候xyz轴的位置会发生移动。我想问一下ortho2d里数值是怎么确定的?顺便问一下ortho,ortho2d,frustum,perspective的区别,lookat如何设置?osg与opengl里对应的函数意思是一样的吗?谢谢

该用户从未签到

发表于 2011-5-5 08:36:01 | 显示全部楼层
这些和OpenGL中完全是一致的,ortho2D = glortho2D,frustum = glFrustum……

该用户从未签到

 楼主| 发表于 2011-5-5 08:59:23 | 显示全部楼层
本帖最后由 garyliyong 于 2011-5-6 07:35 编辑

我重新设置ortho2D(0,100,0,100)后,左下角的xyz轴就看不见了,这是为什么?

该用户从未签到

发表于 2011-5-6 08:36:16 | 显示全部楼层
您改变了投影视口的范围,当然就看不到了。或者说此时坐标轴模型正贴着X=0和Y=0的边线,而且投影出来的结果非常小,您看到了也无法注意到它
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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