Hi,

I currently try to render a setup of multiple cameras off screen in
order to read them to an osg::Image (raw data of some kind would be
enough - I know how to convert it to an osg::Image).
The point is, I want those cameras to be nicely arranged (the way I can
arrange them on other graphics contexts like osgViewer::CompositeViewer)
I tried different approaches but none worked so far.
The simplest one would be:


osg::GraphicsContext::Traits* t = new osg::GraphicsContext::Traits();
t->x = 1;
t->y = 1;
t->width = 1024;
t->height = 692;
t->pbuffer = true;
pb = new osgViewer::PixelBufferWin32(t);

camera->setGraphicsContext(pb);
camera->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER);
camera->setViewport(new osg::Viewport(x0,y0,w,h));

...

frame();
img->readPixels(0, 0, width, height, GL_BGRA, GL_UNSIGNED_BYTE);
do_something(img);


Another approached was using PBOs. Something like:


img = new osg::Image;
img->allocateImage(1024,692,1,GL_BGRA,GL_UNSIGNED_BYTE);

osg::GraphicsContext::Traits* t = new osg::GraphicsContext::Traits();
t->x = 1;
t->y = 1;
t->width = 1024;
t->height = 692;
t->pbuffer = true;
pb = new osgViewer::PixelBufferWin32(t);

pb->getState()->setCurrentPixelBufferObject(img->getPixelBufferObject);

camera->setGraphicsContext(pb);
camera->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER_OBJECT);
camera->setViewport(new osg::Viewport(x0,y0,w,h));

...

pb->getState()->bindPixelBufferObject(img->getPixelBufferObject);
frame();
do_something(img);
pb->getState()->unbindPixelBufferObject(img->getPixelBufferObject);


But this doesen't work either.
Had some other approaches too, but those threw OpenGL errors claiming
some operation is not supported...

I'm kind of stuck with this. I know the data is some where - things like
attaching an image to a camera and reading it work - but I just can't
find it.
I would be really thankful for at least a hint.

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

Reply via email to