[Development] Rendering with different framerates into one scene

Jocelyn Turcotte jocelyn.turcotte at digia.com
Fri Mar 14 16:12:02 CET 2014


On Fri, Mar 14, 2014 at 03:49:21PM +0100, Christoph Kurz wrote:
> Now, if there is more than enough graphics power, ItemA and ItemB are rendered
> with 60fps; If there is just enough power, ItemA is rendered with 40fps, ItemB
> with 30fps. If there is not enough power for this, then ItemA could be rendered
> with 20fps, ItemB with 15fps.

If the scene is rendered without some items, those items will disapear
from the screen as well, this is probably not what you waht. You could
instead to store the result of the rendering of a complex branch of the
scene into a FramebufferObject and simply blit it on frames where it isn't
modified.

This however comes at the price of using memory to store those pixels
between frames.

> Now the questions:
> - Is that (or something similar) possible with the Qt scenegraph?

"layer.enabled: true" should be enough to trigger intermediate rendering,
but I haven't tried it myself so there might be some details I'm missing.

http://qt-project.org/doc/qt-5/qml-qtquick-item.html#layer.enabled-prop

> - How much effort would it be to implement it?

Hopefully the above trick helps, the solution you propose sounds quite,
humm, complex.

> - Do you have useful links to additional articles / blogs that shed more light
> on the scenegraph internals?

For an overview: http://qt-project.org/doc/qt-5/qtquick-visualcanvas-scenegraph-renderer.html

For more details the code is quite readable in most parts. Have a look
under qtdeclarative/src/quick/scenegraph/.

Cheers,
Jocelyn



More information about the Development mailing list