查看: 1569|回复: 6

view的仿真循环

[复制链接]

该用户从未签到

发表于 2009-10-9 19:04:11 | 显示全部楼层 |阅读模式
请问在使用viewer时,我们使用while(viewer->done)viewer->frame(),那么使用view时,我们应该怎么用呢?

该用户从未签到

发表于 2009-10-9 20:35:11 | 显示全部楼层
参看osgcompositeviewer例子

该用户从未签到

 楼主| 发表于 2009-10-9 23:01:09 | 显示全部楼层
我说的是这个osg::view这个观察者,在opengl中是控制实时刷新,不知道在osg中应该怎样去使用这个类

该用户从未签到

发表于 2009-10-9 23:10:06 | 显示全部楼层
这个不需要您自己去控制,它是OSG内部调用的

该用户从未签到

 楼主| 发表于 2009-10-10 08:48:51 | 显示全部楼层
4# array

是这样的,ray哥,osg中默认的应该是perspective视景吧,我做的内容里,我发现默认的zfar是10000,znear是1.0,我的场景中处于观察位置上的物体(znear这边)一部分在视锥体内,一部分在视锥体外,然后有一个物体(飞机),从zfar那边进入视景体时,观察点这边观察到的物体纹理会出错,就是前几天我问的会出现物体下面的纹理覆盖上面的纹理的情况,当飞机完全进入视锥体后就不会出现了,而且我在更改了zfar,使zfar变大10倍,100倍,还是会在zfar = 10000出现这个问题,不知道是什么原因.我现在开发用的是osg2.2,不知道其他人遇到过这个问题没有?
不知道这个问题有没有办法解决?
所以我才会问您怎么去控制view.
可不可以通过一些设置避免这个问题?是不是因为观察点里物体过近造成的,观察点(0,0,1),物体的中心坐标(0,0,0)?我在使用了别的模型时也会出现这个问题

该用户从未签到

发表于 2009-10-10 09:53:50 | 显示全部楼层
可以设置远近平面的比率,getCamera()->setNearFarRatio(),设置一个足够小的值,供OSG内部自动计算时使用。
或者如果您想自己计算zfar和znear的话,首先关闭自动计算远近平面的机制,getCamera()->setComputeNearFarMode(DO_NOT_COMPUTE_NEAR_FAR),然后再设置自己的值,否则设置是无效的
总之用不到什么view

该用户从未签到

 楼主| 发表于 2009-10-10 10:42:17 | 显示全部楼层
感谢Ray哥,在您的指点下,我终于做好了,前两天就想问的是这个问题,但是语言表达能力不强。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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