[osg-users] performance issues with RTT

Robert Osfield robert.osfield at gmail.com
Fri Sep 5 06:19:20 PDT 2008

Hi Steffen,

You need to work out what the bottleneck is in your setup.  Try
adjusting the resolution of your textures to see if it's a memory or
fillrate issue.  Also try a range of models - ones that are simple
through to ones that are complex to see how things scale - compare
this with a standard osgviewer working on the same models.

In the end rendering your scene 5 times is going to be slower than
mono rendering - you have 5 times are much work to do, and that's even
before the final combining step.


On Fri, Sep 5, 2008 at 2:12 PM, Steffen Kim <mailto.stk at web.de> wrote:
> Hi everybody.
> I have some performance problems with rendering to texture.
> I am doing some interlacing for an autostereoscopic display. Therefor I need 5 different views on the scene, which I render into textures I later use as input for the interlacing API.
> But doing the RTT slows down my application significantly (even in Release-mode).
> I first thought it would be the interlacer that takes that much time but when I disabled all interlacing and everything that updates the cameras after the master camera was moved it didn't really change.
> Even now, when everything I do is displaying the picture of the master camera and additionally rendering to five textures, it runs very halting.
> I define 5 target textures and 5 rtt-cameras via
>        // Configure source textures for the interlacer
>        _interlacer->resetIterator();
>        for(int i = 0; i < _interlacer->getNumberOfTextures(); i++){
>                osg::ref_ptr<osg::Texture2D> renderTexture = _interlacer->getIteratorTexture();
>                renderTexture->setTextureSize(_interlacer->getResultTexture()->getTextureWidth(), _interlacer->getResultTexture()->getTextureHeight());
>                renderTexture->setInternalFormat(GL_RGBA);
>                renderTexture->setFilter(osg::Texture2D::MIN_FILTER, osg::Texture2D::LINEAR);
>                renderTexture->setFilter(osg::Texture2D::MAG_FILTER, osg::Texture2D::LINEAR);
>                _interlacer->incIterator();
>        }
>        // Configure cameras of the camera model
>        _cameras->resetIterator();
>        _interlacer->resetIterator();
>        for(int i = 0; i < _cameras->getNumberOfCameras(); i++){
>                osg::ref_ptr<osg::Camera> textureCamera = _cameras->getIteratorCamera();
>                textureCamera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
>                textureCamera->setClearMask(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
>                textureCamera->setViewport(0,0, winWidth, winHeight);
>                textureCamera->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER_OBJECT);
>                textureCamera->setRenderOrder(osg::Camera::PRE_RENDER);
>                textureCamera->setGraphicsContext(_billInterface->getGraphicsContext());
>                textureCamera->setAllowEventFocus(false);
>                textureCamera->addChild(_billInterface->getScene());
>                textureCamera->attach(osg::Camera::COLOR_BUFFER, _interlacer->getIteratorTexture().get());
>                _cameras->incIterator();
>                _interlacer->incIterator();
>        }
> The five RTT-cameras are children of a group node, which I add to the root node of my scene graph.
> Is there a way to speed up the rendering somehow? I could make the resolution of the textures smaller (currently it's 1280x1024) but this would decrease the quality of the final image and I would have to scale the textures before interlacing what probably also takes some time.
> Thanks for any hints,
> Steffen
> ________________________________________________________________________
> Schon gehört? Bei WEB.DE gibt' s viele kostenlose Spiele:
> http://games.entertainment.web.de/de/entertainment/games/free/index.html
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

More information about the osg-users mailing list