查看: 976|回复: 3

osg3.0.1的一个奇怪的BUG

[复制链接]

该用户从未签到

发表于 2013-10-28 23:02:26 | 显示全部楼层 |阅读模式
刚开始学OSG,今天编译运行了array《OpenSceneGraph 3.0 Beginner's Guide》 第4章的例程“quickly creating simple objects”,运行结果有问题。该程序画了三个几何体:长方体(白色)、圆锥(绿色)、球(蓝色)。代码如下:

        osg::ref_ptr<osg::ShapeDrawable> shape1 = new osg::ShapeDrawable;
        shape1->setShape( new osg::Box(osg::Vec3(-3.0f, 0.0f, 0.0f), 2.0f, 2.0f, 1.0f) );

        osg::ref_ptr<osg::ShapeDrawable> shape2 = new osg::ShapeDrawable;
        shape2->setShape( new osg::Sphere(osg::Vec3(3.0f, 0.0f, 0.0f), 1.0f) );
        shape2->setColor( osg::Vec4(0.0f, 0.0f, 1.0f, 1.0f) );

        osg::ref_ptr<osg::ShapeDrawable> shape3 = new osg::ShapeDrawable;
        shape3->setShape( new osg::Cone(osg::Vec3(0.0f, 0.0f, 0.0f), 1.0f, 1.0f) );
        shape3->setColor( osg::Vec4(0.0f, 1.0f, 0.0f, 1.0f) );

        osg::ref_ptr<osg::Geode> root = new osg::Geode;
        root->addDrawable( shape1.get() );
        root->addDrawable( shape2.get() );
        root->addDrawable( shape3.get() );

        osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer;
        viewer->setSceneData( root.get() );
        return viewer->run();

但是我的程序中,三个几何体均为白色。如下图:
未命名2.PNG

如果注释部分代码,只显示一个几何体,颜色显示正常。

编译环境为官方网站提供的BIN文件包 + VC2008sp1

后来改用OSG2.8.5,显示效果正常。

本以为事情到此就为止了,这只不过是OSG3.01的一个BUG。但是后来换了一个机器,结果发现用OSG3.0.1编译的程序运行又正常了。这下我就蒙了,为啥呢?因为这两个机器实际上是同一个vmWare虚拟机的拷贝,只不过主机不同,有问题的那个主机是ATI显卡,支持OpenGL2.1;没问题的那个主机是intel内置显卡,仅支持OpenGL1.4。

另外,在运行正常的那个主机上的虚拟机运行时提示:
Windows Error #127: [Screen #0] ChooseMatchingPixelFormat() - wglChoosePixelFormatARB extension not found, trying GDI. Reason: 找不到指定的程序。

Rendering in software: pixelFormatIndex 3

不知道是不是和这有关?


明天准备试试OSG3.2.0

该用户从未签到

发表于 2013-10-29 11:54:45 | 显示全部楼层
我也遇到过  ati显卡就是操蛋


    root->addDrawable( shape1.get() );
        root->addDrawable( shape2.get() );
        root->addDrawable( shape3.get() );

把3个shape放到3个不同node里去就行了

该用户从未签到

 楼主| 发表于 2013-10-29 22:17:27 | 显示全部楼层
又尝试了一下:

虚拟机 + OSG3.2.0  问题依旧
主 机 + OSG3.0.1  OK

看来还是虚拟机的OpenGL驱动不完善导致的。

该用户从未签到

发表于 2013-11-1 10:01:47 | 显示全部楼层
您的错误提示已经很明显了,没有相应的扩展,只能改成软件渲染。虚拟机的3D加速能力很弱,vmware需要安装专门的显卡驱动才勉强可用(不是那个增强包),vbox也基本上如此
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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