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
++
++ ParticleSystem3D {
++ id: heavyRain
++ y: 2000
++ ParticleEmitter3D {
++ id: heavyRainEmitter
++ emitRate: 50
++ lifeSpan: 500
++ shape: heavyRainShape
++ particle: heavyRainParticle
++ particleScale: 0.75
++ particleScaleVariation: 0.25
++ velocity: heavyRainDirection
++ depthBias: -200
++
++ VectorDirection3D {
++ id: heavyRainDirection
++ direction.y: -(heavyRain.y * 2)
++ }
++
++ SpriteParticle3D {
++ id: heavyRainParticle
++ color: "#73e6f4ff"
++ maxAmount: 100
++ particleScale: 100
++ fadeInDuration: 0
++ fadeOutDuration: 10
++ fadeOutEffect: Particle3D.FadeOpacity
++ sortMode: Particle3D.SortDistance
++ sprite: heavyRainTexture
++ spriteSequence: heavyRainSequence
++ offsetY: heavyRainParticle.particleScale / 2
++ billboard: true
++
++ Texture {
++ id: heavyRainTexture
++ source: "rain.png"
++ }
++
++ SpriteSequence3D {
++ id: heavyRainSequence
++ duration: 15
++ randomStart: true
++ animationDirection: SpriteSequence3D.Normal
++ frameCount: 3
++ interpolate: true
++ }
++ }
++ }
++
++ ParticleShape3D {
++ id: heavyRainShape
++ extents.x: 500
++ extents.y: 0.01
++ extents.z: 500
++ type: ParticleShape3D.Cube
++ fill: true
++ }
++
++ TrailEmitter3D {
++ id: heavyRainDropletEmitter
++ emitRate: 0
++ lifeSpan: 500
++ particle: heavyRainDropletParticle
++ particleScaleVariation: 0.2
++ follow: heavyRainParticle
++ emitBursts: heavyRainDropletBurst
++ velocity: heavyRainDropletDirection
++ depthBias: -8
++
++ SpriteParticle3D {
++ id: heavyRainDropletParticle
++ color: "#5ea6e2ff"
++ maxAmount: 300
++ sprite: heavyRainDropletTexture
++ particleScale: 3
++ sortMode: Particle3D.SortDistance
++ fadeInEffect: Particle3D.FadeScale
++ fadeOutEffect: Particle3D.FadeScale
++ fadeOutDuration: 200
++ fadeInDuration: 100
++ billboard: true
++
++ Texture {
++ id: heavyRainDropletTexture
++ source: "sphere.png"
++ }
++ }
++
++ DynamicBurst3D {
++ id: heavyRainDropletBurst
++ triggerMode: DynamicBurst3D.TriggerEnd
++ amount: 1
++ amountVariation: 1
++ }
++
++ VectorDirection3D {
++ id: heavyRainDropletDirection
++ direction.x: 0
++ direction.y: 120
++ direction.z: 0
++ directionVariation.x: 150
++ directionVariation.y: 100
++ directionVariation.z: 150
++ }
++ }
++
++ Gravity3D {
++ id: heavyRainDropletGravity
++ particles: heavyRainDropletParticle
++ magnitude: 800
++ }
++
++ TrailEmitter3D {
++ id: heavyRainPoolEmitter
++ lifeSpan: 800
++ emitRate: 0
++ particle: heavyRainPoolParticle
++ particleScale: 25
++ particleRotation.x: -90
++ follow: heavyRainParticle
++ emitBursts: heavyRainPoolBurst
++ depthBias: -10
++
++ SpriteParticle3D {
++ id: heavyRainPoolParticle
++ color: "#11ecf9ff"
++ maxAmount: 300
++ sprite: heavyRainPoolTexture
++ fadeOutEffect: Particle3D.FadeOpacity
++ fadeInEffect: Particle3D.FadeScale
++ fadeOutDuration: 800
++ fadeInDuration: 150
++ Texture {
++ id: heavyRainPoolTexture
++ source: "ripple.png"
++ }
++ }
++
++ DynamicBurst3D {
++ id: heavyRainPoolBurst
++ triggerMode: DynamicBurst3D.TriggerEnd
++ amount: 1
++ }
++ }
++
++ TrailEmitter3D {
++ id: heavyRainSplashEmitter
++ emitRate: 0
++ lifeSpan: 800
++ particle: heavyRainSplashParticle
++ particleScale: 15
++ particleScaleVariation: 15
++ particleRotation.x: 0
++ follow: heavyRainParticle
++ emitBursts: heavyRainSplashBurst
++ depthBias: -10
++
++ SpriteParticle3D {
++ id: heavyRainSplashParticle
++ color: "#94c0e7fb"
++ billboard: true
++ sprite: heavyRainSplashTexture
++ spriteSequence: heavyRainSplashSequence
++ sortMode: Particle3D.SortDistance
++ fadeOutEffect: Particle3D.FadeOpacity
++ fadeInEffect: Particle3D.FadeScale
++ fadeOutDuration: 800
++ fadeInDuration: 450
++ offsetY: particleScale / 2
++ Texture {
++ id: heavyRainSplashTexture
++ source: "splash7.png"
++ }
++
++ SpriteSequence3D {
++ id: heavyRainSplashSequence
++ duration: 800
++ frameCount: 6
++ }
++ maxAmount: 1500
++ }
++
++ DynamicBurst3D {
++ id: heavyRainSplashBurst
++ triggerMode: DynamicBurst3D.TriggerEnd
++ amount: 1
++ }
++ }
++ }