Hello Qt Quick 3D Example
// Copyright (C) 2020 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause import QtQuick import QtQuick.Timeline import QtQuick3D import HelloExample Window { id: window width: 1280 height: 720 visible: true View3D { id: view anchors.fill: parent environment: SceneEnvironment { clearColor: "black" backgroundMode: SceneEnvironment.Color } Node { id: cameraNode PerspectiveCamera { id: camera position: Qt.vector3d(0, 0, 650) } property bool isRotating: false PropertyAnimation on eulerRotation.x { from: 0 to: 360 duration: 20000 loops: Animation.Infinite running: cameraNode.isRotating } Timeline { id: timeline0 startFrame: 0 endFrame: 1000 currentFrame: 0 enabled: true SequentialAnimation on currentFrame { NumberAnimation { from: 0 to: 500 duration: 4000 } NumberAnimation { from: 500 to: 1000 duration: 10000 loops: Animation.Infinite } } KeyframeGroup { target: cameraNode property: "isRotating" Keyframe { frame: 0 value: false } Keyframe { frame: 500 value: true } } KeyframeGroup { target: oldLogo property: "isRotating" Keyframe { frame: 0 value: false } Keyframe { frame: 100 value: true } } KeyframeGroup { target: camera property: "z" Keyframe { frame: 0 value: 2000 } Keyframe { frame: 100 value: 2000 } Keyframe { frame: 400 value: 100 } Keyframe { frame: 500 value: 200 } Keyframe { frame: 550 value: 200 } Keyframe { frame: 700 value: 1000 easing.type: Easing.OutElastic } Keyframe { frame: 750 value: 1000 } Keyframe { frame: 800 value: 1000 } Keyframe { frame: 950 value: 200 easing.type: Easing.OutElastic } Keyframe { frame: 1000 value: 200 } } } } DirectionalLight { eulerRotation.x: 250 eulerRotation.y: -30 brightness: 1.0 ambientColor: "#7f7f7f" } Model { id: oldLogo property real s: 4.75 property real r: 0 property bool isRotating: false scale: Qt.vector3d(s, s, s); source: "oldqtlogo.mesh" instancing: ImageInstanceTable { gridSize: 40 gridSpacing: 20 image: ":/qt_logo.png" } materials: DefaultMaterial { diffuseColor: "white" } NumberAnimation on r { running: oldLogo.isRotating from: 0 to: 360 duration: 3000 loops: Animation.Infinite } onRChanged: rotate(2.5, Qt.vector3d(1, -1, 0), Node.LocalSpace) } } }