Revision control
++ // Copyright (C) 2021 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
++
++ import QtQuick
++ import QtQuick3D
++ import QtQuick3D.Particles3D
++
++ Window {
++ id: mainWindow
++ width: 1280
++ height: 720
++ visible: true
++
++ property real fontSize: width * 0.012
++
++ View3D {
++ anchors.fill: parent
++
++ environment: SceneEnvironment {
++ clearColor: "#202020"
++ backgroundMode: SceneEnvironment.Color
++ antialiasingMode: SceneEnvironment.MSAA
++ antialiasingQuality: SceneEnvironment.High
++ }
++
++ PerspectiveCamera {
++ id: camera
++ position: Qt.vector3d(0, 100, 600)
++ }
++
++ PointLight {
++ position: Qt.vector3d(0, 400, 100)
++ brightness: 10
++ ambientColor: Qt.rgba(0.3, 0.3, 0.3, 1.0)
++ }
++
++ // Models shared between particles
++ Component {
++ id: particleComponent
++ Model {
++ source: "#Cube"
++ scale: Qt.vector3d(0.05, 0.05, 0.05)
++ materials: DefaultMaterial {
++ }
++ }
++ }
++
++ ParticleSystem3D {
++ id: psystem
++
++ property vector4d cVar: Qt.vector4d(0.5,0.5,0.5,0.5)
++ // Particles
++ ModelParticle3D {
++ id: particleRed
++ delegate: particleComponent
++ maxAmount: 250000
++ color: "#ff0000"
++ colorVariation: psystem.cVar
++ }
++
++
++ // Emitters, one per particle
++ ParticleEmitter3D {
++ particle: particleRed
++ position: Qt.vector3d(400, -50, 0)
++ particleScaleVariation: 0.8
++ particleRotationVariation: Qt.vector3d(180, 180, 180)
++ particleRotationVelocityVariation: Qt.vector3d(200, 200, 200);
++ velocity: VectorDirection3D {
++ direction: Qt.vector3d(-50, 100, 0)
++ directionVariation: Qt.vector3d(30, 30, 30)
++ }
++ emitRate: 10000
++ lifeSpan: 20000
++ }
++ Gravity3D {
++ // Enable to affect only some of the particles
++ //particles: [particleRed, particleBlue, particleGreen]
++ direction: Qt.vector3d(0, 1, 0)
++ magnitude: -20
++ }
++ }
++ }
++
++ Rectangle {
++ anchors.fill: settingsArea
++ anchors.margins: -10
++ color: "#e0e0e0"
++ border.color: "#000000"
++ border.width: 1
++ opacity: 0.8
++ }
++
++ Column {
++ id: settingsArea
++ anchors.top: parent.top
++ anchors.topMargin: 20
++ anchors.right: parent.right
++ anchors.rightMargin: 20
++ Text {
++ color: "#222840"
++ font.pointSize: 12
++ text: "Red Variation"
++ }
++
++ }
++ }