Its still not working with tiff. But I also have problems when I put it
directly into the texture, it doesn't work too.
Any ideas?
Am 11.01.10 22:27, schrieb Mourad Boufarguine:
Hi Dominic,
AFAIK, the png plugin does not support writing depth image. Try the
tiff plugin in svn/trunk ; a recent submission made it write depth
images, and it works for me.
Mourad
On Mon, Jan 11, 2010 at 4:17 PM, Dominic Stalder
<[email protected] <mailto:[email protected]>> wrote:
Hi there
I have the following RTT method:
ref_ptr<Image> image = new Image;
image->allocateImage(osgViewer->width(), osgViewer->height(),
1, GL_RGBA, GL_UNSIGNED_BYTE);
// resets the size of the texture
texture->setTextureSize(osgViewer->width(), osgViewer->height());
// sets the clear mask the depth buffer
camera->setClearMask(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// sets the clear color to white
camera->setClearColor(Vec4(1.0, 1.0, 1.0, 1.0));
...matrices and viewport...
// sets the reference frame to an absolute coordinate frame
camera->setReferenceFrame(Camera::ABSOLUTE_RF_INHERIT_VIEWPOINT);
// sets the texture camera to render before rendering to the screen
camera->setRenderOrder(Camera::PRE_RENDER);
// sets the rendering target of the texture camera to the frame
buffer object (FBO)
camera->setRenderTargetImplementation(Camera::FRAME_BUFFER_OBJECT);
// attaches the texture to the texture camera (important:
samples mustn't be greater than zero)
// buffer component, texture, level, face, mip map generation,
samples, color samples
camera->attach(Camera::COLOR_BUFFER, image.get(), 0, 0);
// adds the node to the texture camera (this node will be
rendered to the texture)
camera->addChild(node);
// adds the texture camera to the root node
root->addChild(camera);
If I write this image to file, it works great, I have my "balance"
in the middle of the image --> see attachment color_buffer.png.
Now I would like to write the depth buffer to the image (just for
debugging, afterward I write it to the texture), so I change the
following lines:
image->allocateImage(osgViewer->width(), osgViewer->height(), 1,
GL_RGBA, GL_UNSIGNED_BYTE); -->
image->allocateImage(osgViewer->width(), osgViewer->height(), 1,
GL_DEPTH_COMPONENT, GL_FLOAT);
camera->attach(Camera::COLOR_BUFFER, image.get(), 0, 0); -->
camera->attach(Camera::DEPTH_BUFFER, image.get(), 0, 0);
After that I get the image depth_buffer.png, but this isn't
correct, is it?
The texture looks like this, is it correct?
// creates the texture for the shadow map
texShadowMap = new Texture2D;
texShadowMap->setInternalFormat(GL_DEPTH_COMPONENT);
texShadowMap->setShadowComparison(true);
texShadowMap->setShadowTextureMode(Texture2D::LUMINANCE);
texShadowMap->setFilter(Texture2D::MIN_FILTER, Texture2D::LINEAR);
texShadowMap->setFilter(Texture2D::MAG_FILTER, Texture2D::LINEAR);
texShadowMap->setWrap(Texture2D::WRAP_S,
Texture2D::CLAMP_TO_BORDER);
texShadowMap->setWrap(Texture2D::WRAP_T,
Texture2D::CLAMP_TO_BORDER);
texShadowMap->setBorderColor(Vec4(1.0, 1.0, 1.0, 1.0));
What am I doing wrong in this function?
Thanks a lot
Dominic
_______________________________________________
osg-users mailing list
[email protected]
<mailto:[email protected]>
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org