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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
// Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB).
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import Qt3D.Core 2.0
import Qt3D.Render 2.0
import Qt3D.Extras 2.0
Entity {
id: root
readonly property Layer layer: screenQuadLayer
property PointLight baseLight
property vector3d light1Pos
property vector3d light2Pos
property vector3d light3Pos
property vector3d light4Pos
Entity {
components: [
baseLight,
layer
]
}
Entity {
readonly property Transform transform1 : Transform { translation: root.light1Pos }
readonly property PointLight light1 : PointLight {
color : "dodgerblue"
intensity : 0.9
}
components: [
transform1,
light1,
layer
]
}
Entity {
readonly property Transform transform2 : Transform { translation: root.light2Pos }
readonly property PointLight light2 : PointLight {
color : "green"
intensity : 0.5
}
components: [
transform2,
light2,
layer
]
}
Entity {
readonly property Transform transform3 : Transform { translation: root.light3Pos }
readonly property PointLight light3 : PointLight {
color : "white"
intensity : 2.0
}
components: [
transform3,
light3,
layer
]
}
Entity {
readonly property Transform transform4 : Transform { translation: root.light4Pos }
readonly property PointLight light4 : PointLight {
color : "white"
intensity : 0.5
}
components: [
transform4,
light4,
layer
]
}
// We need to have the actual screen quad entity separate from the lights.
// If the lights were sub-entities of this screen quad entity, they would
// be affected by the rotation matrix, and their world positions would thus
// be changed.
Entity {
components : [
Layer { id: screenQuadLayer },
PlaneMesh {
width: 2.0
height: 2.0
meshResolution: Qt.size(2, 2)
},
Transform { // We rotate the plane so that it faces us
rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), 90)
},
Material {
effect : FinalEffect {}
}
]
}
}
|