代码如下
Size size = _director->getWinSize();
auto frameBuffer = experimental::FrameBuffer::create(1, size.width, size.height);
auto rt = experimental::RenderTarget::create(size.width, size.height);
auto ds = experimental::RenderTargetDepthStencil::create(size.width, size.height);
frameBuffer->attachRenderTarget(rt);
frameBuffer->attachDepthStencilTarget(ds);
frameBuffer->setClearColor(Color4F(0, 0, 0, 1));
Camera* pCamera = pScene->getDefaultCamera();
pCamera->setFrameBufferObject(frameBuffer);
pCamera = Camera::create();
pCamera->setCameraFlag(CameraFlag::USER1);
this->addChild(pCamera);
auto pSprite = Sprite::createWithTexture(rt->getTexture());
pSprite->setPosition(size /2);
pSprite->setCameraMask(2);
pSprite->setFlipY(true);
auto glState = GLProgramState::getOrCreateWithGLProgramName(GLProgram::SHADER_NAME_POSITION_GRAYSCALE);
pSprite->setGLProgramState(glState);
this->addChild(pSprite);