现在的位置: 首页 > 综合 > 正文

每日一练(十)pageLod

2018年01月29日 ⁄ 综合 ⁄ 共 1185字 ⁄ 字号 评论关闭

#include <osg/group>
#include <osg/node>
#include <osg/Matrix>
#include <osg/Vec3>
#include <osg/MatrixTransform>
#include <osgViewer/viewer>
#include <osgUtil/Optimizer>
#include <osgDB/ReadFile>
#include <osgDB/writeFile>
#include <osg/PagedLOD>
#include "../include/LoadLib.h"

osg::ref_ptr<osg::Group> CreatePageLod()
{
    osg::ref_ptr<osg::PagedLOD> pagelod = new osg::PagedLOD();
    pagelod->setCenter(osg::Vec3(0.0f,0.0f,0.0f));
    
    pagelod->setFileName(0,"cow.osg");
    pagelod->setRange(0,0,50.0f);
    
    pagelod->setFileName(1,"glider.osg");
    pagelod->setRange(1,50.0f,100.0f);
     
    pagelod->setFileName(2,"cessna.osg");
    pagelod->setRange(2,100.0f,200.0f);

    return pagelod.get();
}

int _tmain(int argc, _TCHAR* argv[])
{

    osg::ref_ptr<osg::Group> root = new osg::Group();
    osg::ref_ptr<osg::MatrixTransform> mt = new osg::MatrixTransform();
    mt->addChild(CreatePageLod());
    osg::Matrix m;
    m.makeRotate(60,0.0f,0.0f,1.0f);
    mt->setMatrix(m);
    root->addChild(mt.get());

    osgDB::writeNodeFile(*root.get(),"pageLod.osg");

    osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();
    osgUtil::Optimizer optimizer;
    optimizer.optimize(root.get());
    
    viewer->setSceneData(root.get());
    viewer->realize();
    viewer->run();
    return 0;
}

抱歉!评论已关闭.