Doc: Add info about particle templates and effects

- Added info about particle templates
- Added info about particle effects
- Minor changes to the structure of Particles docs
- Update info on how to add a particle system

Task-number: QDS-6422
Change-Id: I73cd0ee0c895df290206ab3207e51c95791a2291
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
This commit is contained in:
Mats Honkamaa
2022-04-07 15:09:50 +03:00
parent fb1f19c7c1
commit 8a252099a1
3 changed files with 190 additions and 52 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

@@ -31,7 +31,7 @@
\nextpage studio-3d-particle-system.html \nextpage studio-3d-particle-system.html
\title Particles \title Particles
A \e {particle system} enables you to use sprites, 3D models, or images to With a \e {particle system} you can use sprites, 3D models, or images to
create effects that are hard to reproduce with conventional rendering create effects that are hard to reproduce with conventional rendering
techniques. This includes chaotic systems, natural phenomena, or processes techniques. This includes chaotic systems, natural phenomena, or processes
caused by chemical reactions. For example, you can simulate fire, smoke, caused by chemical reactions. For example, you can simulate fire, smoke,
@@ -47,15 +47,16 @@
\li \l {Particle Directions} \li \l {Particle Directions}
\endlist \endlist
\section1 Adding a Particle System Preset particle \l{Particle Components}{components},
\l{Particle Templates}{templates}, and \l{Particle Effects}{effects} are
Preset particle components are available in available in \uicontrol Components > \uicontrol {QtQuick3D Particles3D}
\uicontrol Components > \uicontrol {Qt Quick 3D Particles 3D}
after you add the \uicontrol {QtQuick3D.Particles3D} module to after you add the \uicontrol {QtQuick3D.Particles3D} module to
your project, as instructed in \l{Adding and Removing Modules}. your project, as instructed in \l{Adding and Removing Modules}.
\image studio-3d-particles.png "3D Particles" \image studio-3d-particles.png "3D Particles"
\section1 Particle Components
When you add an instance of the \uicontrol {Particle System} component to a When you add an instance of the \uicontrol {Particle System} component to a
scene, \QDS automatically adds instances of the \uicontrol {Sprite Particle}, scene, \QDS automatically adds instances of the \uicontrol {Sprite Particle},
\uicontrol Emitter, and \uicontrol {Vector Direction} components for you. \uicontrol Emitter, and \uicontrol {Vector Direction} components for you.
@@ -82,53 +83,6 @@
to simulate flying objects that follow wavy curves, or an instance of the to simulate flying objects that follow wavy curves, or an instance of the
\uicontrol {Point Rotator} to simulate windy weather. \uicontrol {Point Rotator} to simulate windy weather.
To add a particle system that emits sprite particles:
\list 1
\li Select \uicontrol Assets > \inlineimage icons/plus.png
to add your sprites, 3D models, textures, and other graphical
\l{Assets}{assets} to the project.
\li Drag-and-drop an instance of the \uicontrol {Particle System}
component from \uicontrol Components to a scene component instance
in \l Navigator.
\li Drag-and-drop the sprite image from \uicontrol Assets to the sprite
particle instance in \uicontrol Navigator.
\endlist
Add instances of other components according to your use case.
\section1 Performance Considerations
The particles are designed to be usable on a variety of hardware on
desktops, as well as mobile and embedded devices. However, in addition
to rendering the maximum amount of particle elements on the screen,
extensibility to different use-cases, rendering quality, integration
with the other UI elements, are also important.
Currently, the rendering runs on GPU, while the particle system logic
runs on CPU. However, the \e {stateless particle system} enables you
to move the system logic onto GPU if that seems beneficial. The initial
measurements indicate that the system is quite well balanced between
CPU and GPU. The stateless system also enables animating particles by
using a \l{Timeline}{timeline}. The model particles use instanced rendering
to boost the performance. Therefore, OpenGL ES 2.0 isn't sufficient to make
rendering performant, and at least OpenGL ES 3.0, Vulkan, or some other
modern backend is required.
To get a more concrete view on the actual performance, the video below shows
a particles Testbed application running on four different Android devices.
These devices and their chipsets and GPUs could be considered to be
lower-end to mid-range, confirming that the particles can perform well also
on affordable hardware.
\youtube 9MqUCP6JLCQ
\section1 Summary of 3D Particles
\note The \uicontrol {Particles 3D} components are released as a tech
preview feature in \QDS 2.2, and their functionality will be improved
in future releases.
The following table lists preset particle components. The following table lists preset particle components.
\table \table
@@ -207,6 +161,190 @@
\li Applies random wave curves to particles. \li Applies random wave curves to particles.
\endtable \endtable
\section1 Particle Templates
A particle template is a preset of particle components that you can use to
create specific particle effects in a convenient way.
The following table lists particle templates and their components.
\table
\header
\li Template
\li Components
\row
\li Animated Sprite
\li
Particle System
\list
\li Particle Emitter
\list
\li Sprite Particle
\li Sprite Sequence
\li Texture
\endlist
\li Vector Direction
\endlist
\row
\li Attractor
\li
Particle System
\list
\li Particle Emitter
\list
\li Sprite Particle
\li Vector Direction
\endlist
\li Particle Attractor
\endlist
\row
\li Burst
\li
Particle System
\list
\li Particle Emitter
\list
\li Sprite Particle
\li Vector Direction
\li Emit Burst
\endlist
\endlist
\row
\li Model Blend
\li
Particle System
\list
\li Particle Emitter
\list
\li Node
\li Model Blend Particle
\li Particle Emitter
\list
\li Vector Direction
\endlist
\endlist
\endlist
\row
\li Model Shape
\li
Particle System
\list
\li Particle Emitter
\list
\li Sprite Particle
\list
\li Vector Direction
\endlist
\endlist
\li Particle Model Shape
\endlist
\row
\li Particle Trail
\li
Particle System
\list
\li Trail Emitter
\list
\li Vector Direction
\li Sprite Particle
\endlist
\li Particle Emitter
\list
\li Vector Direction
\li Sprite Particle
\endlist
\endlist
\row
\li Sprite
\li
Particle System
\list
\li Sprite Emitter
\list
\li Sprite Particle
\li Vector Direction
\endlist
\endlist
\row
\li Wander
\li
Particle System
\list
\li Sprite Emitter
\list
\li Sprite Particle
\list
\li Texture
\endlist
\li Wander
\li Node
\endlist
\endlist
\endtable
\section1 Particle Effects
A particle effect is a ready-made effect that you can use to create, for
example, fire, rain, or mist in a convenient way.
The following particle effects are available:
\list
\li Clouds
\li Dust
\li Exhaust
\li Fire
\li Heavy Rain
\li Heavy Tire Spray
\li Light Rain
\li Light Tire Spray
\li Rain Mist
\li Snow
\li Steam
\endlist
\section1 Adding a Particle System
The recommended way to add a particle system is to use one of the
\l{Particle Templates}{particle templates} and then add or remove
particle components according to your use case.
For example, to add a particle system that emits sprite particles:
\list
\li From \uicontrol {Qt Quick 3D Particles System Templates} in
\uicontrol {Components}, drag \uicontrol Sprite to a scene component in
\uicontrol Navigator. You can also drag it to \uicontrol {3D Editor}.
\endlist
\image studio-3d-particles-sprite-template.png
\section1 Performance Considerations
The particles are designed to be usable on a variety of hardware on
desktops, as well as mobile and embedded devices. However, in addition
to rendering the maximum amount of particle elements on the screen,
extensibility to different use-cases, rendering quality, integration
with the other UI elements, are also important.
Currently, the rendering runs on GPU, while the particle system logic
runs on CPU. However, the \e {stateless particle system} enables you
to move the system logic onto GPU if that seems beneficial. The initial
measurements indicate that the system is quite well balanced between
CPU and GPU. The stateless system also enables animating particles by
using a \l{Timeline}{timeline}. The model particles use instanced rendering
to boost the performance. Therefore, OpenGL ES 2.0 isn't sufficient to make
rendering performant, and at least OpenGL ES 3.0, Vulkan, or some other
modern backend is required.
To get a more concrete view on the actual performance, the video below shows
a particles Testbed application running on four different Android devices.
These devices and their chipsets and GPUs could be considered to be
lower-end to mid-range, confirming that the particles can perform well also
on affordable hardware.
\youtube 9MqUCP6JLCQ
\section1 Particle System Tutorials \section1 Particle System Tutorials
\list \list