#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;
}

osg绘制立方体_#include