Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.

QtCS2018 Graphics Vision 2020

From Qt Wiki
Revision as of 11:22, 11 June 2018 by Pasikeranen (talk | contribs) (More minutes as meeting continues.)
Jump to navigation Jump to search

Laszlo presented the current 5.11 graphics diagram and vision diagram as discussion starting point.

Qt .511

  • Qt 3D Studio 2.0 runtime is now built on Qt 3D.
    • This means we have a 3D scene graph that is mainted by the runtime.
    • Qt 3D is still available for use.
  • On Qt Quick 2 side we have Qt Quick Scenegraph.
    • One mistake we did in Qt 5 was to depend on OpenGL and exposing shader coding directly as GLSL.
  • You can use OpenGL texture streaming to render from Qt 3D Studio to Qt Quick or vice versa.
    • Allows embedding of 2D to 3D and 3D to 2D.
    • But has limitations and not highly efficient as we run two independent rendering pipelines with synch points etc.
  • These two silos should be integrated in the future.
    • To get there the underlying things should be fixed.

Qt Graphics 2020

  • One possible destination.
  • We start with Designer Tool (one tool).
  • Underneath this tooling we have an architecture that:
    • Qt Quick Scenegraph
      • Still has the Qt Quick and Qt Quick Scenegraph with Software renderer path
      • Can have still Qt Quick and Qt Quick Scenegraph with OpenGL backend
      • Remove all others (OpenVG as it's limited, D3D12 that is not quite complete even today).
    • Qt 3D Studio Scenegraph
      • Manages Qt 3D scene and frame graphs
      • 2D scene graph merged at runtime in to the 3D scenegraph.
      • Resulting in a combined scene graph with 2D branches and no texture composition (unless needed for optimisation reasons).
    • Shared Parts between QQ and Q3DS
      • Visual shader graph node editing for:
        • QQ shader effects
        • Q3DS materials
        • Postprocessing FX
      • This gets us to describing the logical presentation of a material or effect. Allows then having different backends for Vulcan, Metal, DX12, OpenGL ES etc.)