Project Rembrandt: Difference between revisions

Jump to navigation Jump to search
m (Wiki link + plus some "passing through" edits. Could do with a cleanup ...)
Line 7: Line 7:


== Status (07/2014) ==
== Status (07/2014) ==
{{Note|
{{FGCquote
  |For the last few weeks I've been getting to grips with the way that deferred rendering works in an attempt to figure out why we don't get the framerate that we should.
I've written up my findings here http://chateau-logic.com/content/deferred-rendering-rembrandt-performance
It appears that vsync is causing problems; and I get a marked  improvement in deferred rendering performance (Rembrandt) using the following flags:
<code>
—prop:/sim/rendering/vsync-enable{{=}}false —prop:/sim/frame-rate-throttle-hz{{=}}60
</code>
Without these flags I get 30fps with nothing visible (/sim/rendering/draw-mask all false). With these flags I get 60fps when drawing nothing which is what I'd expect.
What I'd like to know know is whether this makes a difference to anyone else - so I'd appreciate any test result FPS figures (with and without the flag) with graphics card and CPU posted here.
I didn't figure out if vsync can be turned off per camera; but I'm 99.9% certain that this is what vsync is causing to happen on my configuration.
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33671091/
    |title=<nowiki>[Flightgear-devel] Deferred rendering (Rembrandt) performance</nowiki>
    |author=<nowiki>Richard Harrison</nowiki>
    |date=<nowiki>2015-03-29</nowiki>
  }}
}}
}}
For the time being, Rembrandt's main developer (FredB) is not actively involved in FlightGear, and Rembrandt must be considered "unmaintained" currently. However, there are 2-3 overlapping efforts, some of which were discussed on the developers mailing list. First of all, there's Zan's newcamera branch, which has never been merged with FlightGear, but which exposes FlightGear's rendering pipelines to XML/fgdata space via the effects framework - which basically means that large portions of Rembrandt could be moved out of the C++ code back into GLSL/effects space, which is something that was originally discussed by a few core developers. This has never materalized, because Zan's work took place pretty much at the same time when Rembrandt was being developed. Likewise, some technical challenges could be easily addressed by exposing each rendering stage to a [[Canvas]] texture, which would mainly require two new features: 1) [[Canvas_Development#Supporting_Cameras|supporting camera views as a new Canvas::Element]], and 2) [[Canvas_Development#Effects_.2F_Shaders|supporting effects/shaders]] per Canvas/Element.  
For the time being, Rembrandt's main developer (FredB) is not actively involved in FlightGear, and Rembrandt must be considered "unmaintained" currently. However, there are 2-3 overlapping efforts, some of which were discussed on the developers mailing list. First of all, there's Zan's newcamera branch, which has never been merged with FlightGear, but which exposes FlightGear's rendering pipelines to XML/fgdata space via the effects framework - which basically means that large portions of Rembrandt could be moved out of the C++ code back into GLSL/effects space, which is something that was originally discussed by a few core developers. This has never materalized, because Zan's work took place pretty much at the same time when Rembrandt was being developed. Likewise, some technical challenges could be easily addressed by exposing each rendering stage to a [[Canvas]] texture, which would mainly require two new features: 1) [[Canvas_Development#Supporting_Cameras|supporting camera views as a new Canvas::Element]], and 2) [[Canvas_Development#Effects_.2F_Shaders|supporting effects/shaders]] per Canvas/Element.  
From then on, most [[Howto:Use_a_Camera_View_in_an_Instrument|Rembrandt-like functionality, including mirror views, tail cameras or FLIR-like processing]], could be fully implemented and maintained by fgdata contributors familiar with the effects framework and shaders, without necessarily being specific to just deferred rendering:   
From then on, most [[Howto:Use_a_Camera_View_in_an_Instrument|Rembrandt-like functionality, including mirror views, tail cameras or FLIR-like processing]], could be fully implemented and maintained by fgdata contributors familiar with the effects framework and shaders, without necessarily being specific to just deferred rendering:   

Navigation menu