Kuesa simple-qml QML Example
Demonstrates the use of the Kuesa API to import a glTF2 file.
QtQuick and Qt3D integration
The simple-qml example relies on the [View3D ] helper element to instantiate a QtQuick based application that combines Qt 3D based content with a 2D UI overlay.
| Item {
id: mainRoot
// 3D Content
KuesaUtils.View3D {
id: scene3D
anchors.fill: parent
focus: true
multisample: true
// showDebugOverlay: true
|
Filename: simple-qml/main.qml
Importing a glTF2 File
In order to load a glTF2 file, Kuesa provides the [GLTF2Importer ] element. This element is hidden within the View3D but can be easily leverage by setting the [source ] property.
| source: "file:" + _assetDir + "/car.gltf"
|
Filename: simple-qml/main.qml
ViewConfiguration
Kuesa provides the [ViewConfiguration ] element to easily configure one or more views of the same scene. Each ViewConfiguration can define its own list of [TransformTrackers ], [PlaceholderTrackers ] and [Post Processing Effects ].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | views: [
KuesaUtils.ViewConfiguration {
cameraName: "CamSweep_Orientation"
transformTrackers: [
Kuesa.TransformTracker { id: motorTracker; name: "TriggerMotorInfo" },
Kuesa.TransformTracker { id: motorEntityTracker; name: "MotorBlock" }
]
clearColor: "white"
},
KuesaUtils.ViewConfiguration {
cameraName: "CamDefault_Orientation"
viewportRect: Qt.rect(0.8,0.05,0.15, 0.15)
clearColor: "white"
}
]
|
Filename: simple-qml/main.qml
Handling Animations
[View3D ] allows to specify one or more [AnimationPlayers ] on the [animations ] property;
1
2
3
4
5
6
7
8
9
10
11
12 | // Adding animation
property bool running: true
animations: [
Kuesa.AnimationPlayer { name: "MatMotorBlockAction"; loops: Kuesa.AnimationPlayer.Infinite; running: scene3D.running; id: mainAnimation },
Kuesa.AnimationPlayer { name: "TriggerMotorInfoAction"; loops: Kuesa.AnimationPlayer.Infinite; running: scene3D.running },
Kuesa.AnimationPlayer { name: "DoorLeftAction"; loops: Kuesa.AnimationPlayer.Infinite; running: scene3D.running },
Kuesa.AnimationPlayer { name: "DoorRightAction"; loops: Kuesa.AnimationPlayer.Infinite; running: scene3D.running },
Kuesa.AnimationPlayer { name: "HoodAction"; loops: Kuesa.AnimationPlayer.Infinite; running: scene3D.running },
Kuesa.AnimationPlayer { name: "SweepCamAction"; loops: Kuesa.AnimationPlayer.Infinite; running: scene3D.running },
Kuesa.AnimationPlayer { name: "SweepCamCenterAction"; loops: Kuesa.AnimationPlayer.Infinite; running: scene3D.running },
Kuesa.AnimationPlayer { name: "SweepCamPitchAction"; loops: Kuesa.AnimationPlayer.Infinite; running: scene3D.running }
]
|
Filename: simple-qml/main.qml
Updated on 2023-07-03 at 11:02:17 +0000