Nonone on this? Robert?

Thank you
Nick

On Sun, Mar 28, 2021 at 5:24 PM Trajce Nikolov NICK <
[email protected]> wrote:

> Attached is the minimal code that reproduce the problem
>
> Thanks a bunch as always!
>
> Nick
>
> On Sun, Mar 28, 2021 at 2:49 PM Trajce Nikolov NICK <
> [email protected]> wrote:
>
>> Hi Community,
>>
>> I am attaching to the main camera DepthBuffer and ColorBuffer as
>> Texture2D - attached is the setup. I also have shader to check the depth
>> buffer - so it is ok as on the image. And I am displaying it on a quad. The
>> depth buffer is still getting me zeros when the colorbuffer is attached,
>> otherwise when it is not, then it works as it should.
>>
>> Any hints?
>>
>> mOsgExternalDepth = new osg::Texture2D;
>> mOsgExternalDepth->setSourceFormat(GL_DEPTH_COMPONENT);
>> mOsgExternalDepth->setSourceType(GL_FLOAT);
>> mOsgExternalDepth->setInternalFormat(GL_DEPTH_COMPONENT32F);
>> mOsgExternalDepth->setTextureWidth(screenWidth);
>> mOsgExternalDepth->setTextureHeight(screenHeight);
>> mOsgExternalDepth->setResizeNonPowerOfTwoHint(false);\
>>
>> mOsgExternalColor = new osg::Texture2D;
>> mOsgExternalColor->setInternalFormat(GL_RGBA16F_ARB);
>> mOsgExternalColor->setSourceFormat(GL_RGBA);
>> mOsgExternalColor->setSourceType(GL_FLOAT);
>> mOsgExternalColor->setTextureWidth(screenWidth);
>> mOsgExternalColor->setTextureHeight(screenHeight);
>> mOsgExternalColor->setResizeNonPowerOfTwoHint(false);
>>
>> mainCamera->attach(osg::Camera::COLOR_BUFFER,
>> (osg::Texture*)mOsgExternalColor);
>> mainCamera->attach(osg::Camera::DEPTH_BUFFER,
>> (osg::Texture*)mOsgExternalDepth);
>>
>> osg::ref_ptr<osg::Camera> camera = new osg::Camera;
>> camera->setProjectionMatrix(osg::Matrixd::ortho2D(0, screenWidth, 0,
>> screenHeight));
>> camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
>> camera->setViewMatrix(osg::Matrixd::identity());
>> camera->setClearMask(0);
>> camera->setRenderOrder(osg::Camera::POST_RENDER);
>> camera->setAllowEventFocus(false);
>>
>>
>> context.getImageGenerator()->getViewer()->getView(0)->getSceneData()->asGroup()->addChild(camera);
>>
>> osg::ref_ptr<osg::Geometry> quad =
>> osg::createTexturedQuadGeometry(osg::Vec3(0, 0, 0),
>> osg::Vec3(screenWidth/2, 0, 0), osg::Vec3(0, screenHeight/2, 0));
>> quad->getOrCreateStateSet()->setMode(GL_LIGHTING,
>> osg::StateAttribute::OFF);
>> quad->getOrCreateStateSet()->setTextureAttributeAndModes(0,
>> mOsgExternalDepth);
>>
>> const std::string vertShader = ""\
>> "void main() "\
>> "{ "\
>> " gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; "\
>> " gl_TexCoord[0] = gl_TextureMatrix[0] *gl_MultiTexCoord0;"\
>> "}";
>>
>> const std::string fragShader = ""\
>> "uniform sampler2D texture0; "\
>> "void main() "\
>> "{ "\
>> " float d = texture2D( texture0, gl_TexCoord[0].xy ).x; "\
>> " gl_FragColor = vec4(d, d, d, 1); "\
>> "}";
>>
>> osg::ref_ptr<osg::Shader> vert = new osg::Shader(osg::Shader::VERTEX,
>> vertShader);
>> osg::ref_ptr<osg::Shader> frag = new osg::Shader(osg::Shader::FRAGMENT,
>> fragShader);
>>
>> osg::ref_ptr<osg::Program> program = new osg::Program;
>> program->addShader(vert);
>> program->addShader(frag);
>>
>> quad->getOrCreateStateSet()->setAttributeAndModes(program);
>> quad->getOrCreateStateSet()->addUniform(new
>> osg::Uniform(osg::Uniform::SAMPLER_2D, "texture0", 0));
>> osg::ref_ptr<osg::Geometry> quadColor =
>> osg::createTexturedQuadGeometry(osg::Vec3(screenWidth / 2, 0, 0),
>> osg::Vec3(screenWidth/2 , 0, 0), osg::Vec3(0, screenHeight/2, 0));
>> quadColor->getOrCreateStateSet()->setMode(GL_LIGHTING,
>> osg::StateAttribute::OFF);
>> quadColor->getOrCreateStateSet()->setTextureAttributeAndModes(0,
>> mOsgExternalColor);
>>
>> camera->addChild(quadColor);
>> camera->addChild(quad);
>>
>> --
>> trajce nikolov nick
>>
>
>
> --
> trajce nikolov nick
>


-- 
trajce nikolov nick

-- 
You received this message because you are subscribed to the Google Groups 
"OpenSceneGraph Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osg-users/CAO-%2Bzim8AG_PaxkzoRdKDEvMMtvykWW6aFy0OE6K%3DNP47PHB9A%40mail.gmail.com.

Reply via email to