Details
-
Task
-
Resolution: Out of scope
-
P2: Important
-
None
Description
Integrate and Manage Scenegraphs and Item Trees
In Qt5 a Qt Quick 3D app features these data structures in its runtime:
- an SGItem tree from QtDeclarative
- a QDeclarativeItem3D tree (which inherits from SGItem)
- an SGNode tree from QtDeclarative Scenegraph
- a QGLSceneNode tree from Qt3D
In order to manage resources, handle dynamic creation and improve performance these structures need to be managed by having one drive the others so they are in sync, and frame refreshes are done quickly. Good design, re-use and refactoring should also be done where possible to make new features and bug fixes easier.
Full Asset Referencing & Utilization
An Item3D refers to either an asset file (3D model) imported from a file (such as 3ds), or it may be composed from standard shapes. In general these are called Meshes.
QtQuick3D must easily deal with referencing sub-parts of meshes for more than trivial use-cases. Item3D must be refactored and improved to allow this, and to integrate deeply with the QGLSceneNode graph structure.
The problem to be solved is on the one hand adding to or modifying the syntax of the Item3D item and its mesh and meshNode property, so that the following use-cases can be acheived:
- copying one part of a model to several instances
- eg taking a tree from a scene in a model and making a row of trees
- eg taking a wheel from a parts library model and putting 4 wheels on a car
- excising a part or parts from a model and drawing it with seperate behaviour, while the remainder of the model is drawn without having to explicitly define all the nodes
- eg animating a closing door on a car
Note that this will be heavily influenced by the Qt Creator integration, which will automatically generate eg Car.qml for a loaded model.
Care should also be taken that existing behaviour of Item3D is kept as close to what users are familiar with.
Attachments
Issue Links
- is replaced by
-
QTBUG-22084 Full Asset Referencing
- Withdrawn
- replaces
-
QTBUG-19498 Declarative mesh subnodes lose relative positioning information
- Closed
1.
|
Break scenegraph from QML heierarchy | Closed | Daniel Pope (closed Nokia identity) (Inactive) |
|
|||||||
2.
|
Inherited Properties Review | Closed | Daniel Pope (closed Nokia identity) (Inactive) |
|
|||||||
3.
|
Integration of Item3D & Item | Closed | Unassigned |
|
|||||||
4.
|
Scenegraph optimization | Closed | Unassigned |
|
|||||||
5.
|
Simple Item3D | Closed | Unassigned |
|
|||||||
6.
|
Split QDeclarativeItem3D::draw() functionality to facilitate subclassing | Closed | Daniel Pope (closed Nokia identity) (Inactive) |
|
|||||||
7.
|
Create a 3D List View | Closed | Daniel Pope (closed Nokia identity) (Inactive) |
|