Hi Robert, I'm sorry, I thougth it's OK like that. Find the definition of the "unknown" method below. I think this shrinks the code to be just OSG, except createScreenQuad() but that should not really matter.
Thanks - Werner - Am 27.06.2018 um 15:44 schrieb Robert Osfield: > Hi Werner, > > You appear to be included reference to calls and classes that aren't > in the OpenSceneGraph, are you using a 3rd party library that is > providing these? > > At this point I can't see a way of helping you as there bit doing the > set up are unknown to us. > > Robert. > On Wed, 27 Jun 2018 at 13:53, Werner Modenbach > <werner.modenb...@texion.eu> wrote: >> Hi all, >> >> I found a strange behavior of a GBufferCamera. I want to get the color >> channel in one image and the depth channel in another image.When >> What I do: >> >> if (!renderImage.valid()) { >> >> renderImage = new osg::Image; >> >> renderImage->allocateImage(width, height, 1, GL_RGBA, >> GL_UNSIGNED_BYTE, 1); >> >> renderImage->setInternalTextureFormat(GL_RGBA8); >> >> } >> >> if (includeDepth && !depthImage.valid()) { >> >> depthImage = new osg::Image; >> >> depthImage->allocateImage(width, height, 1, GL_DEPTH_COMPONENT, >> GL_FLOAT, 1); >> >> renderImage->setInternalTextureFormat(GL_LUMINANCE32F_ARB); >> >> } >> >> if (!includeDepth) >> renderCamera = >> view->createRTTCameraImage(osg::Camera::COLOR_BUFFER, 0, renderImage.get(), >> true); >> else >> renderCamera = >> view->createRTTCameraGBufferImage(osg::Camera::COLOR_BUFFER0, >> renderImage.get(), osg::Camera::DEPTH_BUFFER, depthImage.get(), >> >> osg::Camera::COLOR_BUFFER1, 0, 0, true); >> >> The definition of createRTT... >> >> osg::Camera *createRTTCameraGBufferImage(osg::Camera::BufferComponent >> _bufferType1, osg::Image *_image1, >> osg::Camera::BufferComponent >> _bufferType2, osg::Image *_image2, >> osg::Camera::BufferComponent >> _bufferType3, osg::Image *_image3, >> int _orderNumber, bool _isAbsolute, >> bool _withScreenQuad = true) { osg::ref_ptr<osg::Camera>camera=newosg::Camera; camera->getOrCreateStateSet()->setGlobalDefaults(); camera->setClearColor(osg::Vec4()); camera->setClearMask(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); camera->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER_OBJECT); camera->setRenderOrder(osg::Camera::PRE_RENDER,_orderNumber); if(_image1){ camera->setViewport(0,0,_image1->s(),_image1->t()); camera->attach(_bufferType1,_image1); } if(_image2){ camera->setViewport(0,0,_image2->s(),_image2->t()); camera->attach(_bufferType2,_image2); } if(_image3){ camera->setViewport(0,0,_image3->s(),_image3->t()); camera->attach(_bufferType3,_image3); } if(_isAbsolute){ camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF); camera->setProjectionMatrix(osg::Matrix::ortho2D(0.0,1.0,0.0,1.0)); camera->setViewMatrix(osg::Matrix::identity()); if(_withScreenQuad){ camera->addChild(createScreenQuad(1.0f,1.0f)); } } returncamera.release(); } >> >> >> When rendering without depth, I get a correct color channel image. >> When rendering both, color and depth, the depth image is OK but the color >> image seems having only the red color information. >> Are there any limitations in using 2 images? >> >> Has anybody else had such an effect already or can anybody give me a hint? >> >> Many thanks in advance >> >> - Werner - >> >> Many thanks in advance. >> _______________________________________________ >> osg-users mailing list >> osg-users@lists.openscenegraph.org >> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org -- *TEXION Software Solutions, Rotter Bruch 26a, D-52068 Aachen* Phone: +49 241 475757-0 Fax: +49 241 475757-29 Web: http://texion.eu eMail: i...@texion.eu
_______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org