crgd12吧 关注:5贴子:104
  • 2回复贴,共1

生成OSG文件

只看楼主收藏回复

nclude <osg/Geode>
#include <osg/Geometry>
#include <osg/ref_ptr>
#include <osgDB/Registry>
#include <osg/Notify>
#include <osgDB/WriteFile>
osg::ref_ptr<osg::Node> crateSceneGraph()
{
osg::ref_ptr<osg::Geometry> geometry = new osg::Geometry;
osg::ref_ptr<osg::Vec3Array> v = new osg::Vec3Array;
geometry->setVertexArray(v.get());
v->push_back(osg::Vec3(-1.0f, 0.0f, -1.0f));
v->push_back(osg::Vec3(1.0f, 0.0f, -1.0f));
v->push_back(osg::Vec3(1.0f, 0.0f, 1.0f));
v->push_back(osg::Vec3(-1.0f, 0.0f, 1.0f));
geometry->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::QUADS, 0, 4));
osg::ref_ptr<osg::Geode> geode = new osg::Geode;
geode->addDrawable(geometry.get());
return geode.get();
}
int main(int argc, char **argv)
{
osg::ref_ptr<osg::Node> root = crateSceneGraph();
if (!root.valid())
osg::notify(osg::FATAL) << "Failed int createSceneGraph()." << std::endl;
bool result = osgDB::writeNodeFile(*root.get(), "my.osg");
if (!result)
osg::notify(osg::FATAL) << "Failed in osgDB::writeNodeFile()" << std::endl;
return 0;
}



1楼2012-03-30 06:08回复



    2楼2012-03-30 06:09
    回复
      2025-05-17 05:42:45
      广告
      问一下,如果是有纹理的场景。用writeNodeFile函数写的osgb文件有没有纹理啊


      3楼2018-05-02 15:47
      回复