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

Quick3D API Review Result

    XMLWordPrintable

Details

    • Task
    • Resolution: Done
    • P1: Critical
    • None
    • 5.14.0 Beta2
    • Quick: 3D
    • None
    • Qt Quick 3D - wk 45/46

    Description

      Below is the notes from the API review session. Please add comment and discuss as needed, I might have missed something

      To start a task, edit this description and mark the bullet point(s) you intend to work on by marking the text with strikethrough and create a sub-task for those as needed.

      QQuick3DViewport

      • Enum for renderMode: remove prefix (RenderMode). Rename Texture -> Offscreen, RenderNode -> Inline.
      • WireFrameMode, change/remove?
      • ref. scene and scene -> look at unifying the two, or find a better name (e.g., combined scene or something)
      • Make the data property a private property (designable?)

      QQuick3DNode

      • Orientation -> move out to be application (or scene) global. Document what the expectation is (leave it as-is for now, due to the risk and amount of work? needs to be fixed at some point).
      • Only have the Orientation for the mesh and, let the backend handle this, leaving all frontend nodes to be in a fixed orientation?
      • Should QtQuick3D be left-handed or right-handed? QtQuick is Right-Handed, which suggest that QtQuick3D should be the same so that end up with a coherent solution once we start merging the two. E.g a higher z value on a QQuickItem means that it should be in front of an item with a lower z. This should also be the case for two 3D nodes if you render a 3D scene in orthographic projection? This is not the case if the system is Left-Handed.
      • Remove propertyChanged signal arguments, since the add (hidden) variables to the QML context that overshadows the properties itself.
      • Rename XXXInScene -> sceneXXX?
      • globalTransform -> sceneTransform (sceneScale consider strange?).
      • Remove the boneId property, we don’t actually support this now.
      • Const usage in the mapping functions

      QQuick3DCamera

      • isFieldOfViewHorizontal -> enum? name -> orientation?
      • Split camera into: default, custom, frustum? (Some controversy as having more classes seen as a positive by all).

      Lights (General)

      • Have ambient light as a global env. property

      QQuick3DAreaLight

      • specularColor (remove), ambientColor (Should be its own light type).
      • shadowMapResolution -> enum (pow of 2)
      • castShadow -> cast(s)Shadow

      QQuick3DPointLight

      • diffuseColor, should it be just color or diffuse?

      QQuickDirectionalLight

      • -a-ok?-
      • Similarly to other lights just one color property.

      QQuick3DMaterial

      • Consider if we still want this abstraction.
      • Remove the emissiveMap2
      • Abbreviation IBL etc.

      QQuickDefaultMaterial

      • Rename to StandardMaterial or something else?
      • Simplify and let the PrincipledMaterial be the one to rule them all? remove fresnel?
      • Remove prefix on enum(s)
      • culling mode -> internal
      • VertexColor/vertexLighting doesn’t work
      • remove enum prefixing
      • remove the diffuse map 2 and 3
      • change emissivePower -> factor
      • Document the specular functions we have
      • Blend mode “Normal” -> SourceOver
      • vertexColors -> useVertexColors
      • remove diffuseLightWrap -> remove? we don’t know what this actually does. Affected by the translucency map?
      • Document the bumpAmount affecting both the normal map and bump amount, also if both maps are provided only one is used (normal map?)

      QQuickPrincipledMaterial

      • Remove enum prefix

      QQuickCustomMaterial

      • Lots of naming fixes
      • Needs documentation done in docs task
      • Remove layers
      • Move custom material to material library and rename it to QtQuick3D.Materials

      QQuick3dEffect

      • Remove, not used -> backend code needs work

      QQuick3DModel

      • Remove skeletonRoot
      • Fix enum prefixing
      • tess -> tessellation
      • Move the orientation to the mode (see Node)?

      QQuick3DPickResult

      • position -> uvPosition
      • Add function for getting the global position of the hit.

      QQuick3DSceneEnvironment

      • Remove effects
      • Expend abbreviation (ao etc)
      • Remove probe2?
      • IBL -> Ibl / ImageBaseLighting
      • disable -> enabled: e.g., isDepthTestDisabled -> depthTestEnabled
      • Brightness -> Exposure? (large task, maybe just document it?)
      • lightProbe -> should we just call it environmentMap?
      • shadow properties, move to the light (remove, shadowDistance, strength etc.)?

      QQuick3DTexture

      • MappingMode::Normal -> Uv
      • TilingMode::Unknown -> remove?

      Attachments

        Issue Links

          There are no Sub-Tasks for this issue.
          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              janichol Andy Nichols
              stromme Christian
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes