由于前面是简单的demo,所以不用管渲染次序。
然而,实际项目中,会出现多种渲染方式.这时候就要用到
camera->setRenderOrder(osg::Camera::PRE_RENDER);
还要加上具体次序,
比如,采样摄像机设为2,处理摄像机设置为1
即
samplecamera->setRenderOrder(osg::Camera::PRE_RENDER,2);
fbocamera->setRenderOrder(osg::Camera::PRE_RENDER,1);
在qt中, 也要注意把图形上下文设置给采样摄像机。
另外,如果从采样摄像机a->处理摄像机b->。。->处理摄像机N,除了最后一个,都要加上etRenderTargetImplementation(osg::Camera::FRAME_BUFFER_OBJECT) //这句话使内容不渲染到屏幕上
在实际项目中,使用osg::Camera的setRenderOrder来设定渲染顺序,例如将采样摄像机设为PRE_RENDER,2,处理摄像机设为PRE_RENDER,1。在Qt环境中,需确保为采样摄像机配置图形上下文。如果有多级处理摄像机,除最后一个外,都应使用etRenderTargetImplementation(osg::Camera::FRAME_BUFFER_OBJECT)防止内容直接显示在屏幕上。
967

被折叠的 条评论
为什么被折叠?



