osg绘制立方体

osg绘制立方体

#include <iostream>
#include <osgViewer/Viewer>
#include <osg/Node>

//#include <osgDB/ReadFile>
//#include <osgDB/WriteFile>

#include <osgUtil\Optimizer>
#include <osg/Geode>
#include <osg/Group>
#include <osg/ShapeDrawable>

//绘制几何体
osg::Geode* createShpe()
{
    //
    osg::Geode *geode = new osg::Geode();
    //半径
    float radius = 0.8f;
    //高度
    float height = 1.6f;

    //精细度
    osg::TessellationHints* hints1 = new osg::TessellationHints();
    //设置精细度
    hints1->setDetailRatio(0.5f);

    //创建正方体
    osg::Box *box = new osg::Box(osg::Vec3(2.0f, 0.0f, 0.0f), 2 * radius);
    osg::ShapeDrawable *draw1 = new osg::ShapeDrawable(box, hints1);


    geode->addDrawable(draw1);

    return geode;
}


int main()
{
    osgViewer::Viewer *viewer1 = new osgViewer::Viewer();
    osg::Group *root = new osg::Group();

    root->addChild(createShpe());

    osgUtil::Optimizer optimizer1;
    optimizer1.optimize(root);
    viewer1->setUpViewInWindow(200, 200, 500, 500, 0);

    //viewer1->addEventHandler(new osgViewer::GraphicsWindow::resized(0,0,640,480));
    viewer1->setSceneData(root);
    viewer1->realize();
    
    viewer1->run();

    return 0;
}

 

 

 

##############

posted @ 2021-08-10 10:33  西北逍遥  阅读(397)  评论(0编辑  收藏  举报