Hi,

I would like to fill the depth buffer with the data of a rendered subgraph. The 
subgraph itself should not be visible in the view. Afterwards, I want to render 
another - and now visible - subgraph that uses (and modifies) the previously 
filled depth buffer.

How can I do this?

I wrote a small program for testing but unfortunately this does not fill the 
depth buffer (the box is completely visible):


Code:

        osg::Geode*   geode(new osg::Geode());
                osg::Program* prog(new osg::Program());
                osg::Shader*  vshader(new osg::Shader(osg::Shader::VERTEX,  
gVertexShader));
                osg::Shader*  fshader(new 
osg::Shader(osg::Shader::FRAGMENT,gFragmentShader));
                osg::ShapeDrawable* box(new osg::ShapeDrawable(new 
osg::Box(osg::Vec3(0,0,0),100.0)));
                osg::ShapeDrawable* sphere(new osg::ShapeDrawable(new 
osg::Sphere(osg::Vec3(50.0,50.0,50.0),100.0)));

                prog->addShader(vshader);
                prog->addShader(fshader);
                box->getOrCreateStateSet()->setAttribute(new 
osg::ColorMask(true,true,true,true));
                sphere->getOrCreateStateSet()->setAttribute(new 
osg::ColorMask(true,false,false,true));
                sphere->getOrCreateStateSet()->setAttribute(new osg::Depth());
                geode->addDrawable(box);
                geode->addDrawable(sphere);
                geode->getOrCreateStateSet()->setAttribute(prog);
                _root->addChild(geode);




Thank you!

PS: The vertex shader just calculates the position by multiplying the 
view-projection matrix with the vertex vector and the fragment shader just 
returns a color value.

Cheers,
Hartwig

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=69698#69698





_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to