| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- // Copyright (C) 2023 The Qt Company Ltd.
- // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
- import QtQuick
- import QtQuick.Window
- import QtCore
- import QtQuick3D
- import QtQuick3D.Helpers
- Item {
- id: previewRoot
- property url skyBoxTexturePath: "assets/skybox/OpenfootageNET_lowerAustria01-1024.hdr"
- property CustomMaterial currentMaterial: CustomMaterial {
- }
- property PrincipledMaterial fallbackMaterial: PrincipledMaterial {
- baseColor: "magenta"
- }
- property alias modelInstance: model
- property alias rootNode: resourceRoot
- property alias instanceEntry: instEntry
- Settings {
- property alias cameraOriginRotation: originNode.rotation
- property alias cameraRotation: sceneCamera.rotation
- property alias cameraPosition: sceneCamera.position
- }
- View3D {
- id: view
- anchors.fill: parent
- environment: SceneEnvironment {
- id: sceneEnvironment
- backgroundMode: previewControls.enableIBL ? SceneEnvironment.SkyBox : SceneEnvironment.Transparent
- lightProbe: previewControls.enableIBL ? skyboxTexture : null
- }
- Texture {
- id: skyboxTexture
- source: previewRoot.skyBoxTexturePath
- }
- Node {
- id: resourceRoot
- }
- property alias cameraOrigin: originNode
- Node {
- id: originNode
- PerspectiveCamera {
- id: sceneCamera
- z: 300
- }
- }
- camera: sceneCamera
- DirectionalLight {
- id: light
- z: 600
- eulerRotation: Qt.vector3d(30, 0, 0)
- visible: previewControls.enableDirectionalLight
- }
- Model {
- id: model
- source: previewControls.modelSource
- materials: [ previewRoot.currentMaterial, previewRoot.fallbackMaterial ]
- property bool enableInstancing: false
- instancing: enableInstancing ? manualInstancing : null
- }
- InstanceList {
- id: manualInstancing
- instances: [instEntry, instEntry1, instEntry2, instEntry3, instEntry4]
- }
- InstanceListEntry {
- id: instEntry
- }
- InstanceListEntry {
- id: instEntry1
- position: Qt.vector3d(120, 150, 150);
- }
- InstanceListEntry {
- id: instEntry2
- position: Qt.vector3d(-70, 70, -100);
- }
- InstanceListEntry {
- id: instEntry3
- position: Qt.vector3d(-100, -120, -70);
- }
- InstanceListEntry {
- id: instEntry4
- position: Qt.vector3d(120, -50, 100);
- }
- OrbitCameraController {
- id: cameraController
- origin: originNode
- camera: sceneCamera
- panEnabled: false
- }
- }
- PreviewControls {
- id: previewControls
- width: parent.width
- targetView: view
- orbitCamera: cameraController
- }
- }
|