|
我想在自己做的场景中加一个天空盒子,就试了下使用OSG自带的那个skydome.osg,结果发现加了之后我的场景就不见了,只剩下那个天空盖子。写个了简单的程序测试一下,发现的确有这个问题,望各位大虾帮帮忙啊~~(lz.osg和skydome.osg都在OSG安装目录的data目录下有)- #include "stdafx.h"
- #include <osgDB/ReadFile>
- #include <osg/ref_ptr>
- #include <osgUtil/Optimizer>
- #include <osgViewer/Viewer>
- #include <osgGA/DriveManipulator>
- int _tmain(int argc, _TCHAR* argv[])
- {
- osg::ref_ptr<osg::Group> rootnode = new osg::Group;
- // load the terrain
- osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFile("lz.osg");
- // optimize the scene graph, remove rendundent nodes and state etc.
- osgUtil::Optimizer optimizer;
- optimizer.optimize(loadedModel.get());
- rootnode->addChild( loadedModel.get() );
- // load the sky dome
- osg::ref_ptr<osg::Node> sky = osgDB::readNodeFile("skydome.osg");
- if (sky.get())
- rootnode->addChild(sky.get());
- osgViewer::Viewer viewer;
- // add a viewport to the viewer and attach the scene graph.
- viewer.setSceneData(rootnode.get());
- // viewer.setCameraManipulator(new osgGA::DriveManipulator);
- viewer.run();
- return 0;
- }
复制代码 以上代码在OSG2.4+VC2005+SP1补丁+Platform SDK 2003下编译通过并可运行。
[ 本帖最后由 Sailent 于 2008-8-26 10:42 编辑 ] |
|