|
我做了一个渲染水的小程序在渲染近处的倒影,我渲染了一张倒影图做后期处理
效果如下:
镜头不动时
这个倒影是镜像桥后,渲染到纹理的
问题是:镜头移动时渲染到纹理的那张图延迟了,不能和主相机同步
移动镜头
试过了很多方法控制渲染到纹理的相机,都不能解决,不知道是不是渲染到纹理的相机设置的不对
代码如下:
osg::ref_ptr<osg::Camera> reflectionCamera = new osg::Camera;
reflectionCamera->setClearColor(osg::Vec4(0.0f,0.0f,0.0f,1.0f));
reflectionCamera->setClearMask(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
reflectionCamera->setViewport(0, 0, 1024, 1024);
reflectionCamera->setRenderOrder(osg::Camera:RE_RENDER);
reflectionCamera->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER);
reflectionCamera->setReferenceFrame(osg::Transform::RELATIVE_RF);
reflectionCamera->attach(osg::Camera::COLOR_BUFFER, reflectionTexture);
reflectionCamera->addChild(reflectionNode);
//reflectionCamera->setUpdateCallback(new RttReflCameraNodeCallback(sceneViewer.getCamera(), waterM->getBound()._center));
无论是指定渲染到纹理的相机的callback与主相机同步,还是指定主相机callback控制渲染到纹理相机都不能同步
像上面那样指定相机osg::Transform::RELATIVE_RF也不行
实在没办法了,忘有高人指点 |
|