Skip to content

Commit 617026a

Browse files
committed
Update 3D particles pages for 4.2
1 parent 5110c2d commit 617026a

File tree

6 files changed

+129
-90
lines changed

6 files changed

+129
-90
lines changed

tutorials/3d/particles/creating_a_3d_particle_system.rst

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ menu. When you do so, keep in mind that not every feature of GPU particles is av
7272
CPU particles, so the resulting particle system will look and behave differently from the
7373
original.
7474

75+
You can also convert CPU particles to GPU particles if you no longer need to use CPU particles.
76+
This is also done from the viewport menu.
77+
7578
Some of the most notable features that are lost during the conversion include:
7679

7780
- multiple draw passes
@@ -81,5 +84,19 @@ Some of the most notable features that are lost during the conversion include:
8184
- attractors
8285
- collision
8386

87+
You also lose the following properties:
88+
89+
- ``Ammount Ratio``
90+
- ``Interp to End``
91+
- ``Damping as Friction``
92+
- ``Emission Shape Offset``
93+
- ``Emission Shape Scale``
94+
- ``Inherit Velocity Ratio``
95+
- ``Velocity Pivot``
96+
- ``Directional Velocity``
97+
- ``Radial Velocity``
98+
- ``Velocity Limit``
99+
- ``Scale Over Velocity``
100+
84101
Converting GPU particles to CPU particles can become necessary when you want to release a game
85102
on older devices that don't support modern graphics APIs.
10.3 KB
Loading
9.63 KB
Loading

tutorials/3d/particles/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ and :ref:`class_CPUParticles3D`, which are processed on the CPU.
5353
CPU particle systems are less flexible than their GPU counterpart, but they work on a wider range of hardware and
5454
provide better support for older devices and mobile phones. Because they are processed on the CPU,
5555
they are not as performant as GPU particle systems and can't render as many individual particles.
56+
In addition they currently do not have all the available options GPU particles have for control.
5657

5758
GPU particle systems run on the GPU and can render hundreds of thousands of particles on modern
5859
hardware. You can write custom particle shaders for them, which makes them very flexible. You can

tutorials/3d/particles/process_material_properties.rst

Lines changed: 102 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,30 @@ lifetime. A value of ``0`` means there is no randomness at all and all particles
2626
the same amount of time, set by the :ref:`Lifetime <doc_3d_particles_properties_time>` property. A value of ``1`` means
2727
that a particle's lifetime is completely random within the range of [0.0, ``Lifetime``].
2828

29+
Particle flags
30+
--------------
31+
32+
The ``Align Y`` property aligns each particle's Y-axis with its velocity. Enabling this
33+
property is the same as setting the :ref:`Transform Align <doc_3d_particles_properties_draw>` property to
34+
``Y to Velocity``.
35+
36+
The ``Rotate Y`` property works with the properties in the `Angle <#angle>`__ and
37+
`Angular Velocity <#angular-velocity>`__ groups to control particle rotation. ``Rotate Y``
38+
has to be enabled if you want to apply any rotation to particles. The exception to this
39+
is any particle that uses the :ref:`Standard Material <doc_standard_material_3d>`
40+
where the ``Billboard`` property is set to ``Particle Billboard``. In that case, particles
41+
rotate even without ``Rotate Y`` enabled.
42+
43+
When the ``Disable Z`` property is enabled, particles will not move along the Z-axis.
44+
Whether that is going to be the particle system's local Z-axis or the world Z-axis is
45+
determined by the :ref:`Local Coords <doc_3d_particles_properties_draw>` property.
46+
47+
The ``Daming as Friction`` property changes the behavior of damping from a constant
48+
deceleration to a deceleration based on speed.
49+
50+
Spawn
51+
-----
52+
2953
.. _doc_process_material_properties_shapes:
3054

3155
Emission shape
@@ -61,38 +85,14 @@ In addition to these relatively simple shapes, you can select the ``Points`` or
6185
:ref:`Complex emission shapes <doc_3d_particles_complex_shapes>` section for a detailed
6286
explanation of how to set these up.
6387

64-
Particle flags
65-
~~~~~~~~~~~~~~
66-
67-
The ``Align Y`` property aligns each particle's Y-axis with its velocity. Enabling this
68-
property is the same as setting the :ref:`Transform Align <doc_3d_particles_properties_draw>` property to
69-
``Y to Velocity``.
70-
71-
The ``Rotate Y`` property works with the properties in the `Angle <#angle>`__ and
72-
`Angular Velocity <#angular-velocity>`__ groups to control particle rotation. ``Rotate Y``
73-
has to be enabled if you want to apply any rotation to particles. The exception to this
74-
is any particle that uses the :ref:`Standard Material <doc_standard_material_3d>`
75-
where the ``Billboard`` property is set to ``Particle Billboard``. In that case, particles
76-
rotate even without ``Rotate Y`` enabled.
77-
78-
When the ``Disable Z`` property is enabled, particles will not move along the Z-axis.
79-
Whether that is going to be the particle system's local Z-axis or the world Z-axis is
80-
determined by the :ref:`Local Coords <doc_3d_particles_properties_draw>` property.
81-
82-
Gravity
83-
~~~~~~~
84-
85-
The next few property groups work closely together to control particle movement and rotation.
86-
``Gravity`` drags particles in the direction it points at, which is straight down at the strength
87-
of Earth's gravity by default. Gravity affects all particle movement.
88-
If your game uses physics and the world's gravity can change at runtime, you can use this property
89-
to keep the game's gravity in sync with particle gravity. A ``Gravity`` value of ``(X=0,Y=0,Z=0)`` means
90-
no particle will ever move at all if none of the other movement properties are set.
91-
92-
.. figure:: img/particle_gravity.webp
93-
:alt: Different values for particle gravity
88+
Angle
89+
~~~~~
9490

95-
Left\: (X=0,Y=-9.8,Z=0), middle\: (X=0,Y=9.8,Z=0), right\: (X=4,Y=2,Z=0).
91+
The ``Angle`` property controls a particle's starting rotation `as described above <#process-material-properties>`__.
92+
In order to have an actual effect on the particle, you have to enable one of two properties: `Rotate Y <#particle-flags>`__
93+
rotates the particle around the particle system's Y-axis. The ``Billboard`` property in
94+
the :ref:`Standard Material <doc_standard_material_3d>`, if it is set to ``Particle Billboard``, rotates
95+
the particle around the axis that points from the particle to the camera.
9696

9797
Direction
9898
~~~~~~~~~
@@ -140,6 +140,36 @@ values for either of these properties `as described above <#process-material-pro
140140
particles begin to move. The direction is multiplied by these values, so you can make particles
141141
move in the opposite direction by setting a negative velocity.
142142

143+
Accelerations
144+
-------------
145+
146+
Gravity
147+
~~~~~~~
148+
149+
The next few property groups work closely together to control particle movement and rotation.
150+
``Gravity`` drags particles in the direction it points at, which is straight down at the strength
151+
of Earth's gravity by default. Gravity affects all particle movement.
152+
If your game uses physics and the world's gravity can change at runtime, you can use this property
153+
to keep the game's gravity in sync with particle gravity. A ``Gravity`` value of ``(X=0,Y=0,Z=0)`` means
154+
no particle will ever move at all if none of the other movement properties are set.
155+
156+
.. figure:: img/particle_gravity.webp
157+
:alt: Different values for particle gravity
158+
159+
Left\: (X=0,Y=-9.8,Z=0), middle\: (X=0,Y=9.8,Z=0), right\: (X=4,Y=2,Z=0).
160+
161+
Angular velocity
162+
~~~~~~~~~~~~~~~~
163+
164+
``Angular Velocity`` controls a particle's speed of rotation `as described above <#process-material-properties>`__.
165+
You can reverse the direction by using negative numbers for ``Velocity Min`` or ``Velocity Max``. Like the
166+
`Angle <#angle>`__ property, the rotation will only be visible if the `Rotate Y <#particle-flags>`__ flag is set
167+
or the ``Particle Billboard`` mode is selected in the :ref:`Standard Material <doc_standard_material_3d>`.
168+
169+
.. note::
170+
171+
The `Damping <#damping>`__ property has no effect on the angular velocity.
172+
143173
Linear acceleration
144174
~~~~~~~~~~~~~~~~~~~
145175

@@ -214,26 +244,15 @@ is slowed down a little unless the total acceleration is greater than the dampin
214244
it isn't, the particle will keep slowing down until it doesn't move at all. The greater the value, the less
215245
time it takes to bring particles to a complete halt.
216246

217-
Angle
218-
~~~~~
219-
220-
The ``Angle`` property controls a particle's starting rotation `as described above <#process-material-properties>`__.
221-
In order to have an actual effect on the particle, you have to enable one of two properties: `Rotate Y <#particle-flags>`__
222-
rotates the particle around the particle system's Y-axis. The ``Billboard`` property in
223-
the :ref:`Standard Material <doc_standard_material_3d>`, if it is set to ``Particle Billboard``, rotates
224-
the particle around the axis that points from the particle to the camera.
225-
226-
Angular velocity
227-
~~~~~~~~~~~~~~~~
228-
229-
``Angular Velocity`` controls a particle's speed of rotation `as described above <#process-material-properties>`__.
230-
You can reverse the direction by using negative numbers for ``Velocity Min`` or ``Velocity Max``. Like the
231-
`Angle <#angle>`__ property, the rotation will only be visible if the `Rotate Y <#particle-flags>`__ flag is set
232-
or the ``Particle Billboard`` mode is selected in the :ref:`Standard Material <doc_standard_material_3d>`.
247+
Attractor interaction
248+
~~~~~~~~~~~~~~~~~~~~~
233249

234-
.. note::
250+
If you want the particle system to interact with :ref:`particle attractors <doc_3d_particles_attractors>`,
251+
you have to check the ``Enabled`` property. When it is disabled, the particle system
252+
ignores all particle attractors.
235253

236-
The `Damping <#damping>`__ property has no effect on the angular velocity.
254+
Display
255+
-------
237256

238257
Scale
239258
~~~~~
@@ -293,17 +312,6 @@ limits the available colors to the closest neighbors of the original color.
293312

294313
Different values for hue variation, both times with blue as base color: 0.6 (left) and 0.1 (right)
295314

296-
.. _doc_process_material_properties_turbulence:
297-
298-
Turbulence
299-
~~~~~~~~~~
300-
301-
Turbulence adds noise to particle movement, creating interesting and lively patterns.
302-
Check the box next to the ``Enabled`` property to activate it. A number
303-
of new properties show up that control the movement speed, noise pattern and overall influence
304-
on the particle system. You can find a detailed explanation of these in the section on
305-
:ref:`particle turbulence <doc_3d_particles_turbulence>`.
306-
307315
.. _doc_process_material_properties_animation:
308316

309317
Animation
@@ -376,41 +384,21 @@ the particle is simulated on every rendered frame. If this is not an option for
376384
your use case, set **Fixed FPS** to be equal to the effective framerate used by
377385
the flipbook animation (see above for the formula).
378386

379-
.. _doc_process_material_properties_subemitter:
380-
381-
Sub-emitter
382-
~~~~~~~~~~~
383-
384-
.. figure:: img/particle_sub_mode.webp
385-
:alt: Sub-emitter modes
386-
:align: right
387-
388-
The available sub-emitter modes
389-
390-
The ``Mode`` property controls how and when sub-emitters are spawned. Set it to ``Disabled``
391-
and no sub-emitters will ever be spawned. Set it to ``Constant`` to make sub-emitters
392-
spawn continuously at a constant rate. The ``Frequency`` property controls how often
393-
that happens within the span of one second. Set the mode to ``At End`` to make the sub-emitter
394-
spawn at the end of the parent particle's lifetime, right before it is destroyed. The
395-
``Amount At End`` property controls how many sub-emitters will be spawned. Set the
396-
mode to ``At Collision`` to make sub-emitters spawn when a particle collides with the
397-
environment. The ``Amount At Collision`` property controls how many sub-emitters will be spawned.
398-
399-
When the ``Keep Velocity`` property is enabled, the newly spawned sub-emitter starts off
400-
with the parent particle's velocity at the time the sub-emitter is created.
387+
.. _doc_process_material_properties_turbulence:
401388

402-
See the :ref:`Sub-emitters <doc_3d_particles_subemitters>` section in this manual for a detailed explanation of how
403-
to add a sub-emitter to a particle system.
389+
Turbulence
390+
~~~~~~~~~~
404391

405-
Attractor interaction
406-
~~~~~~~~~~~~~~~~~~~~~
392+
Turbulence adds noise to particle movement, creating interesting and lively patterns.
393+
Check the box next to the ``Enabled`` property to activate it. A number
394+
of new properties show up that control the movement speed, noise pattern and overall influence
395+
on the particle system. You can find a detailed explanation of these in the section on
396+
:ref:`particle turbulence <doc_3d_particles_turbulence>`.
407397

408-
If you want the particle system to interact with :ref:`particle attractors <doc_3d_particles_attractors>`,
409-
you have to check the ``Enabled`` property. When it is disabled, the particle system
410-
ignores all particle attractors.
398+
.. _doc_process_material_properties_subemitter:
411399

412400
Collision
413-
~~~~~~~~~
401+
---------
414402

415403
The ``Mode`` property controls how and if emitters collide with particle collision nodes. Set it
416404
to ``Disabled`` to disable any collision for this particle system. Set it to ``Hide On Contact``
@@ -431,3 +419,27 @@ with random scale or scale that varies over time.
431419

432420
You can learn more about particle collisions in the :ref:`Collisions <doc_3d_particles_collision>`
433421
section in this manual.
422+
423+
Sub-emitter
424+
-----------
425+
426+
.. figure:: img/particle_sub_mode.webp
427+
:alt: Sub-emitter modes
428+
:align: right
429+
430+
The available sub-emitter modes
431+
432+
The ``Mode`` property controls how and when sub-emitters are spawned. Set it to ``Disabled``
433+
and no sub-emitters will ever be spawned. Set it to ``Constant`` to make sub-emitters
434+
spawn continuously at a constant rate. The ``Frequency`` property controls how often
435+
that happens within the span of one second. Set the mode to ``At End`` to make the sub-emitter
436+
spawn at the end of the parent particle's lifetime, right before it is destroyed. The
437+
``Amount At End`` property controls how many sub-emitters will be spawned. Set the
438+
mode to ``At Collision`` to make sub-emitters spawn when a particle collides with the
439+
environment. The ``Amount At Collision`` property controls how many sub-emitters will be spawned.
440+
441+
When the ``Keep Velocity`` property is enabled, the newly spawned sub-emitter starts off
442+
with the parent particle's velocity at the time the sub-emitter is created.
443+
444+
See the :ref:`Sub-emitters <doc_3d_particles_subemitters>` section in this manual for a detailed explanation of how
445+
to add a sub-emitter to a particle system.

tutorials/3d/particles/properties.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ want to activate or deactivate particle systems dynamically.
1616
The ``Amount`` property controls the maximum number of particles visible at any given time. Increase the
1717
value to spawn more particles at the cost of performance.
1818

19+
The ``Amount Ratio`` property is the radio of particles compared to the ammount that will be emitted.
20+
If it's less than ``1.0`` the ammount of particles emitted through the lifetime will be the ``Ammount`` *
21+
``Amount Ratio``. Changing this value while emitted doesn't affect already created particles and doesn't
22+
cause the particle system to restart. It's useful for making effects where the number of emitted particels
23+
varies over time.
24+
1925
You can set another particle node as a ``Sub Emitter``, which will be spawned as a child of each
2026
particle. See the :ref:`Sub-emitters <doc_3d_particles_subemitters>` section in this manual for a detailed explanation of how
2127
to add a sub-emitter to a particle system.
@@ -43,6 +49,9 @@ would use:
4349
Example: Emitting 32 particles with a lifetime of 4 seconds each would mean the system emits
4450
8 particles per second.
4551

52+
The ``Interp to End`` property causes all the particles in the node to interpolate towards
53+
the end of their lifetime.
54+
4655
If the checkbox next to the ``One Shot`` property is checked, the particle system will emit ``amount`` particles
4756
and then disable itself. It "runs" only once. This property is unchecked by default, so the system will
4857
keep emitting particles until it is disabled or destroyed manually. One-shot particles are a good fit for

0 commit comments

Comments
 (0)