1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import Qt3D.Core 2.0
import Qt3D.Render 2.0
import QtQuick 2.0
import Qt3D.Extras 2.0
Entity {
id: sceneRoot
readonly property double cameraZ: camera.position.z
function viewAll() {
camera.viewAll()
}
function viewLogo() {
camera.viewEntity(logoEntity)
}
function setPositionZ(z) {
camera.position = Qt.vector3d( 0.0, 0.0, z )
}
Camera {
id: camera
projectionType: CameraLens.PerspectiveProjection
fieldOfView: 40
aspectRatio: 4/3
nearPlane : 0.1
farPlane : 1000.0
position: Qt.vector3d( 0.0, 0.0, 7.5 )
upVector: Qt.vector3d( 0.0, 1.0, 0.0 )
viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 )
}
components: [
RenderSettings {
activeFrameGraph: ForwardRenderer {
camera: camera
clearColor: "white"
}
renderPolicy: RenderSettings.OnDemand
}
]
PhongMaterial {
id: material
diffuse: Qt.rgba( color_r.value/255, color_g.value/255, color_b.value/255, 1.0 )
ambient: Qt.rgba( 0.1, 0.1, 0.1, 1.0 )
shininess: shining.value
}
Transform {
id: logoTransform
rotation: fromEulerAngles( rotation_x.value, rotation_y.value, rotation_z.value )
}
Mesh {
id: logoMesh
source: "Qt_logo.obj"
}
Entity {
id: logoEntity
components: [ logoMesh, material, logoTransform ]
}
Entity {
components: [
PointLight {
color: "white"
intensity: 0.6
},
Transform {
translation: Qt.vector3d(0, 0, 10)
}
]
}
}
|