Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-54596

Qt3D Transform: no arbitrary transformation support

    XMLWordPrintable

Details

    Description

      Qt 3D implementation doesn't support arbitrary 4x4 matrix transformations.
      Even using 'matrix' property of Transform doesn't help: the class Transform supports only rotate, translate and scale transformations and the documentation doesn't reflect this artificial restriction.
      Transform

      { matrix: aMatrix }

      Once a pre-calculated 4x4 matrix has been assigned to the Transform, it is being decomposed into a combination of scaling, translation and rotation and a new matrix is being calculated based on these three values. This makes impossible to implement perspective or skew transformations.

      For a live example and more details please see the following forum link:
      https://forum.qt.io/topic/68787/qt3d-transform-skew-uncompatible/

      How this can be fixed:
      1. Add a 'rawMatrix' property to existing Transform to tell it we're going to use pre-calculated matrix and matrix decomposition and transform properties update is not required
      2. Implement additional RawTransform or MatrixTransform class that would accept only matrix and no other properties and can be used instead of Transform class.

      Attachments

        For Gerrit Dashboard: QTBUG-54596
        # Subject Branch Project Status CR V

        Activity

          People

            ervin Kevin Ottens
            sylc Sergey
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes