1
0
Fork 0

Change the order of the main cameras from NESTED_RENDER to POST_RENDER

This seems to be accepted OSG usage for slave cameras. It's possible
that this order is important for rendering instruments that use RTT
textures on systems without frame buffer object support. I'm thinking
that the resulting bugs may be implicated in the "black rectangle" problem.
This commit is contained in:
timoore 2008-12-30 21:09:46 +00:00 committed by Tim Moore
parent 60e8f14d5b
commit ada7f622d7
2 changed files with 3 additions and 3 deletions

View file

@ -147,7 +147,7 @@ CameraInfo* CameraGroup::addCamera(unsigned flags, Camera* camera,
installCullVisitor(farCamera); installCullVisitor(farCamera);
info->farCamera = farCamera; info->farCamera = farCamera;
info->farSlaveIndex = _viewer->getNumSlaves() - 1; info->farSlaveIndex = _viewer->getNumSlaves() - 1;
farCamera->setRenderOrder(Camera::NESTED_RENDER, info->farSlaveIndex); farCamera->setRenderOrder(Camera::POST_RENDER, info->farSlaveIndex);
camera->setCullMask(camera->getCullMask() & ~simgear::BACKGROUND_BIT); camera->setCullMask(camera->getCullMask() & ~simgear::BACKGROUND_BIT);
camera->setClearMask(GL_DEPTH_BUFFER_BIT); camera->setClearMask(GL_DEPTH_BUFFER_BIT);
} }
@ -155,7 +155,7 @@ CameraInfo* CameraGroup::addCamera(unsigned flags, Camera* camera,
installCullVisitor(camera); installCullVisitor(camera);
info->camera = camera; info->camera = camera;
info->slaveIndex = _viewer->getNumSlaves() - 1; info->slaveIndex = _viewer->getNumSlaves() - 1;
camera->setRenderOrder(Camera::NESTED_RENDER, info->slaveIndex); camera->setRenderOrder(Camera::POST_RENDER, info->slaveIndex);
_cameras.push_back(info); _cameras.push_back(info);
return info; return info;
} }

View file

@ -101,7 +101,7 @@ osg::Node* FGCreateRedoutNode()
camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF); camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
camera->setProjectionMatrix(osg::Matrix::ortho2D(-1, 1, -1, 1)); camera->setProjectionMatrix(osg::Matrix::ortho2D(-1, 1, -1, 1));
camera->setViewMatrix(osg::Matrix::identity()); camera->setViewMatrix(osg::Matrix::identity());
camera->setRenderOrder(osg::Camera::POST_RENDER, 10); camera->setRenderOrder(osg::Camera::POST_RENDER, 99);
camera->setClearMask(0); camera->setClearMask(0);
camera->setAllowEventFocus(false); camera->setAllowEventFocus(false);
camera->setCullingActive(false); camera->setCullingActive(false);