summaryrefslogtreecommitdiffstats
path: root/examples/qt3d/pbr-materials/Lights.qml
blob: 2ff5f22d3f5e0619136d39fcc967d8a8bd8fae1e (plain)
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
// Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB).
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

import QtQuick 2.1
import Qt3D.Core 2.0
import Qt3D.Render 2.0
import Qt3D.Input 2.0
import Qt3D.Extras 2.0

Entity {
    id: lights

    // Point Light (pulsing)
    Entity {
        components: [
            PointLight {
                color: "red"
                intensity: 0.3
                constantAttenuation: 1.0
                linearAttenuation: 0.0
                quadraticAttenuation: 0.0025

                NumberAnimation on intensity {
                    from: 0.3; to: 0.8;
                    running: true
                    loops: Animation.Infinite
                    duration: 1000
                    easing.type: Easing.CosineCurve
                }
            },
            Transform {
                translation: Qt.vector3d(0.0, 5.0, 0.0)
            }
        ]
    }

    // 2 x Directional Lights (steady)
    Entity {
        components: [
            DirectionalLight {
                worldDirection: Qt.vector3d(0.3, -3.0, 0.0).normalized();
                color: "#fbf9ce"
                intensity: 0.3
            }
        ]
    }

    Entity {
        components: [
            DirectionalLight {
                worldDirection: Qt.vector3d(-0.3, -0.3, 0.0).normalized();
                color: "#9cdaef"
                intensity: 0.15
            }
        ]
    }

    // Spot Light (sweeping)
    Entity {
        components: [
            SpotLight {
                localDirection: Qt.vector3d(0.0, -1.0, 0.0)
                color: "white"
                intensity: 5.0
            },
            Transform {
                id: spotLightTransform
                translation: Qt.vector3d(0.0, 5.0, 0.0)
                rotationZ: -60.0


                SequentialAnimation {
                    loops: Animation.Infinite
                    running: true

                    NumberAnimation {
                        target: spotLightTransform
                        property: "rotationZ"
                        from: -60; to: 60
                        duration: 4000
                        easing.type: Easing.InOutQuad
                    }

                    NumberAnimation {
                        target: spotLightTransform
                        property: "rotationZ"
                        from: 60; to: -60
                        duration: 4000
                        easing.type: Easing.InOutQuad
                    }
                }
            }
        ]
    }
}