Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-58901 QAbstractClipBlendNode cleanup
  3. QTBUG-59155

Blend nodes should not hold vector of children blend nodes

    XMLWordPrintable

Details

    • Technical task
    • Resolution: Done
    • P1: Critical
    • 5.9.0 Beta 1
    • Qt3D
    • None

    Description

      ClipBlendNode currently contains a vector of QNodeId's called m_childrenIds which is used when traversing the blend tree. This is incorrect, or at least suboptimal.

      Each subclass of ClipBlendNode should manage the set of blend nodes upon which is is dependent and allow to be queried for this information. Also, note that these are not necessarily children nodes - just dependencies for evaluation of the given node.

      The current processing is suboptimal in that all leaf nodes are marked for evaluated. In Qt 5.9 with the blend nodes available, that is fine. However for 5.10 and beyond where we will have more general clip nodes, such as a general lerp blend node containing N dependent nodes/clips. We actually only need to evaluate 2 of the N clips. Just those sandwiching the blend factor. This will reduce the amount of clips being evaluated and make it easier to add more blend nodes in the future.

      Each blend node should determine it's own dependencies because only it knows about the kind of blending it will be doing. The above case is one example, but there are also 2D lerps (bilinear blending), barycentric blending, generalised barycentric blending by way of delauney triangulation etc.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            seanharmer Sean Harmer
            seanharmer Sean Harmer
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes