forked from qt-creator/qt-creator
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:
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 |
@@ -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
|
||||||
|
Reference in New Issue
Block a user