Qt Quick 3D - wk 45/46
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?)
- 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?
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
Lots of naming fixes Needs documentationdone 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
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?
- relates to
QTBUG-79760 PropertyMap in AssetImport is not well-maintained
- mentioned in