Talk:Hackathon Proposal: CompositeViewer and Canvas: Difference between revisions

Jump to navigation Jump to search
m
→‎SceneGraph Cameras vs. Prerender Cams: just keeping track ... since Compositor + CompositeViewer are now both committed, Canvas::View may be revisited sooner than expected
m (→‎SceneGraph Cameras vs. Prerender Cams: https://sourceforge.net/p/flightgear/mailman/message/37157855/)
m (→‎SceneGraph Cameras vs. Prerender Cams: just keeping track ... since Compositor + CompositeViewer are now both committed, Canvas::View may be revisited sooner than expected)
Line 13: Line 13:
* [https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/src/Canvas/FGCanvasSystemAdapter.cxx#l68 This is the API used to insert cameras from simgear into fg]
* [https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/src/Canvas/FGCanvasSystemAdapter.cxx#l68 This is the API used to insert cameras from simgear into fg]
* [https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/src/Viewer/renderer.cxx#l974 which ends up here]
* [https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/src/Viewer/renderer.cxx#l974 which ends up here]
* [https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/src/Viewer/PUICamera.cxx#l302 and here's how the PUI prerender cam is set up] (splash.cxx containing another example based on James' comments <ref>https://sourceforge.net/p/flightgear/mailman/message/37157855/</ref>)
* [https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/src/Viewer/PUICamera.cxx#l302 and here's how the PUI prerender cam is set up] ([https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/src/Viewer/splash.cxx#l273 splash.cxx] containing another example based on James' comments <ref>https://sourceforge.net/p/flightgear/mailman/message/37157855/</ref>)


:: --[[User:Hooray|Hooray]] ([[User talk:Hooray|talk]]) 11:20, 16 November 2020 (EST)
:: --[[User:Hooray|Hooray]] ([[User talk:Hooray|talk]]) 11:20, 16 November 2020 (EST)
Line 20: Line 20:
::: Even if the other implementation was based on slave cameras, the performance impact should be the same. The overhead that is caused by slave cameras or the CompositeViewer stack is almost negligible. All of the performance drops we are seeing are caused by traversing the scene multiple times (effectively twice for two views). If extra views are also being rendered on considerably big textures, we might also see the GPU fill-rate play a role, specially on limited GPUs like Intel Integrated GPUs. James mentioned something along these lines too, so I think we can all agree that we have to be careful on what parts of the scenegraph we are going to render and the size of the texture we are rendering to.
::: Even if the other implementation was based on slave cameras, the performance impact should be the same. The overhead that is caused by slave cameras or the CompositeViewer stack is almost negligible. All of the performance drops we are seeing are caused by traversing the scene multiple times (effectively twice for two views). If extra views are also being rendered on considerably big textures, we might also see the GPU fill-rate play a role, specially on limited GPUs like Intel Integrated GPUs. James mentioned something along these lines too, so I think we can all agree that we have to be careful on what parts of the scenegraph we are going to render and the size of the texture we are rendering to.
::: --[[User:Icecode|Icecode]] ([[User talk:Icecode|talk]]) 11:55, 16 November 2020 (EST)
::: --[[User:Icecode|Icecode]] ([[User talk:Icecode|talk]]) 11:55, 16 November 2020 (EST)
:::: Regarding texture size vs. extra views, we could detect that and log a warning to the console, i.e. do a test for sane ranges (128x128,256x256,512x512) and then add a configurable warning, possibly based on property rules to detect whenever an unreasonable texture size is used for extra views. If Canvas::View were to inherit from Canvas::Image, this could be done directly as part of the child class.


:::: so that means, draw masks (node masks) per compositor and LOD ranges need to be mapped to the view element then (see below), right ? And a dedicated prerender camera outside the scene graph for just MFDs ? --[[User:Hooray|Hooray]] ([[User talk:Hooray|talk]]) 12:09, 16 November 2020 (EST)
:::: so that means, draw masks (node masks) per compositor and LOD ranges need to be mapped to the view element then (see below), right ? And a dedicated prerender camera outside the scene graph for just MFDs ? --[[User:Hooray|Hooray]] ([[User talk:Hooray|talk]]) 12:09, 16 November 2020 (EST)

Navigation menu