查看: 1726|回复: 8

请教大家一个DisplaySetting::instance()的问题

[复制链接]

该用户从未签到

发表于 2013-3-21 10:45:12 | 显示全部楼层 |阅读模式
我的显卡好像不支持quad buffer
使用osgviewer --stereo QUAD_BUFFER cow.osg 时控制台会提示错误

我想请教大家的是使用三位投影功能是不是加上这两句,带上3D眼睛就可以看到3D效果了?
osg:isplaySettings::instance()->setStereo(true);
osg::DisplaySettings::instance()->setStereoMode(osg::DisplaySettings:uad_buffer);

对场景需不需要做其他的操作?osgstereoimage的例子里为什么要读两张图片?场景里的节点需要这样做么(读两遍)?

该用户从未签到

 楼主| 发表于 2013-3-21 10:47:27 | 显示全部楼层
还有就是不支持QUAD BUFFER的话只能换显卡来解决?
软件方法有吗?论坛里搜索到了array提到了软件方法,我水平较低,不知道去哪里找,请各位指点一二,感谢!

该用户从未签到

发表于 2013-3-22 09:22:51 | 显示全部楼层
NV只有Quadro系列卡是支持QuadBuffer的,软件上只要启动了StereoMode就可以使用,不需要多张图片。您可以换用其他与硬件无关的3d显示模式,例如红青,水平垂直分割等

该用户从未签到

 楼主| 发表于 2013-3-25 17:46:39 | 显示全部楼层
本帖最后由 lanbomegp 于 2013-3-26 00:25 编辑
array 发表于 2013-3-22 09:22
NV只有Quadro系列卡是支持QuadBuffer的,软件上只要启动了StereoMode就可以使用,不需要多张图片。您可以换 ...


这几天没来,感谢前辈指点。
我还有个问题是:
我在viewer之前setStereo(),并设定了模式
我希望在运行起来之后还可以对osg:isplaySettings::instance()进行修改,我是在MFC对话框的事件里对instance进行比如setEyeSeparation(),修改模式之类的调整,有时可以调整,有时就没反应。
请问是不是我不该在对话框响应事件里修改,如果是的话,请问这些操作放在哪里比较好?如果不是麻烦方便时指点一下吧~

该用户从未签到

发表于 2013-3-26 08:16:21 | 显示全部楼层
貌似viewer的初始化realize过程中需要用到DisplaySetting中的参数,而且只是一次,所以可能您的修改有的时候不能影响

该用户从未签到

 楼主| 发表于 2013-4-7 11:56:50 | 显示全部楼层
liuzhiyu123 发表于 2013-3-26 08:16
貌似viewer的初始化realize过程中需要用到DisplaySetting中的参数,而且只是一次,所以可能您的修改有的时候 ...

谢谢您回复,请问有没有一种合适的方法可以随时调整diplaysetting的各个参数呢?

除了osg例子,这方面的资料可以在哪里查阅到呢 请指教一下吧

该用户从未签到

发表于 2013-4-7 12:37:35 | 显示全部楼层
调整参数可以,您调整什么?

该用户从未签到

 楼主| 发表于 2013-4-7 13:59:34 | 显示全部楼层
本帖最后由 lanbomegp 于 2013-4-7 14:00 编辑
liuzhiyu123 发表于 2013-4-7 12:37
调整参数可以,您调整什么?


displaySetting->setStereo();
displaySetting->setScreenDistance();
displaySetting->setScreenHeight();
displaySetting->setScreenWidth();
displaySetting->setStereoMode();
displaySetting->setDisplayType();
displaySetting->setEyeSeparation();

就是这些 我在对话框中调整这些 总会发生冲突 viewer生效之前定义了osg::displaySettings::instance()->setStereo(true);

该用户从未签到

 楼主| 发表于 2013-4-7 22:52:55 | 显示全部楼层
lanbomegp 发表于 2013-4-7 13:59
displaySetting->setStereo();
displaySetting->setScreenDistance();
displaySetting->setScreenHei ...

问题解决了 定义osg::displaysetting类型的指针来修改viewer就行了 结贴了吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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