|
楼主 |
发表于 2012-8-16 09:46:47
|
显示全部楼层
本帖最后由 gis_wudi 于 2012-8-16 09:54 编辑
可以关联到Camera,这时设置camera的setRenderTargetImplementation就行了。它保存的Image也就是当前摄像机所对应的视野之内的东西
谢谢您的提示,我没有看attach接口就直接来发帖了,现把调用代码贴出来,希望对以后类似需求的人能有所帮助
直接将image对象关联到相机上即可
包括截屏都可以
g_Image = new osg::Image;
viewer->getCamera()->attach(osg::Camera::COLOR_BUFFER, g_Image.get());
同时加了一个handler来做键盘响应,用以将image存成图片
if(ea.getKey() == 'p')
{
osgDB::writeImageFile(*g_Image, "capture.bmp");
}
这是主相机,相当与截屏了
如果是其他的渲染相机,同理,直接attach就可以了
发现这个截屏都不需要在camera的回调中做
下图是关联一个rtt相机存储后的图片
g_Image = new osg::Image;
rrtCamera->attach(osg::Camera::COLOR_BUFFER, g_Image.get());
|
|