FC2ブログ

爪車

OSGメモ 隠れたポリゴンの描写

OpenSceneGraphのメモ

デプステストによって描写されないポリゴンを描写。
試行錯誤で何とかできました。

オブジェクトの描写順に関係なく、描写できると思います。

before


after
Screenshot-20101210-2.png

 #include <osg/Geode>
#include <osg/Geometry>
#include <osg/ShapeDrawable>
#include <osg/CullFace>
#include <osgViewer/Viewer>

osg::Node* createScene()
{
osg::Group* root = new osg::Group;

// box 1
{
osg::Geode* geode = new osg::Geode;
osg::ShapeDrawable* drawable = new osg::ShapeDrawable;
osg::Box* box = new osg::Box;
box->setCenter(osg::Vec3(-1, -1, -1));
box->setHalfLengths(osg::Vec3(0.9, 0.9, 0.9));

drawable->setColor(osg::Vec4(1, 0, 0, 1));

drawable->setShape(box);
geode->addDrawable(drawable);

root->addChild(geode);
}

// box 2
{
osg::Geode* geode = new osg::Geode;
osg::ShapeDrawable* drawable = new osg::ShapeDrawable;
osg::Box* box = new osg::Box;
box->setCenter(osg::Vec3(0, 0, 0));
box->setHalfLengths(osg::Vec3(0.5, 0.5, 0.5));

drawable->setColor(osg::Vec4(0, 1, 0, 0.5));

osg::StateSet* stateset = drawable->getOrCreateStateSet();

// 隠面消去
osg::CullFace* cull = new osg::CullFace;
cull->setMode(osg::CullFace::BACK);
stateset->setAttributeAndModes(cull, osg::StateAttribute::ON);

// DepthTest Off
stateset->setMode(GL_DEPTH_TEST,osg::StateAttribute::OFF);

//
stateset->setRenderBinDetails(11, "RenderBin");

drawable->setShape(box);
geode->addDrawable(drawable);

root->addChild(geode);
}

// box 3
{
osg::Geode* geode = new osg::Geode;
osg::ShapeDrawable* drawable = new osg::ShapeDrawable;
osg::Box* box = new osg::Box;
box->setCenter(osg::Vec3(1, 1, 1));
box->setHalfLengths(osg::Vec3(0.9, 0.9, 0.9));

drawable->setColor(osg::Vec4(0, 0, 1, 1));

drawable->setShape(box);
geode->addDrawable(drawable);

root->addChild(geode);
}

return root;
}

int main(int argc, char* argv[])
{
osgViewer::Viewer viewer;

viewer.setSceneData(createScene());

return viewer.run();
}

« MMDAgentα版公開|Top|ヒト型ロボット 83 Irrlicht Engine »

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://tsumeguruma.blog46.fc2.com/tb.php/174-3647cb58

Top

HOME

tsumehashi

Author:tsumehashi
FC2ブログへようこそ!

11 | 2019/12 | 01
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -