Browse Source

Explain the start and process functions for particle shaders

Add references in the particle shader doc and the migration guide
clayjohn 2 years ago
parent
commit
0c8c8feb72

+ 7 - 7
tutorials/migrating/upgrading_to_godot_4.rst

@@ -505,14 +505,12 @@ Godot 3.x, you will have to change its code to call :ref:`class_RenderingServer`
 methods that affect environment effects' quality. Only the "base" toggle of each
 methods that affect environment effects' quality. Only the "base" toggle of each
 environment effect and its visual knobs remain within the Environment resource.
 environment effect and its visual knobs remain within the Environment resource.
 
 
-Updating external shaders
-^^^^^^^^^^^^^^^^^^^^^^^^^
+Updating shaders
+^^^^^^^^^^^^^^^^
 
 
-**Only shaders that are built-in to a scene file are modified by the project
-upgrade tool.** This means external shaders (saved to ``.gdshader`` files)
-need to be updated manually.
+There have been some changes to shaders that aren't covered by the upgrade tool.
 
 
-The ``.shader`` file extension is also no longer supported, which means you must
+The ``.shader`` file extension is no longer supported, which means you must
 rename ``.shader`` files to ``.gdshader`` and update references accordingly in
 rename ``.shader`` files to ``.gdshader`` and update references accordingly in
 scene/resource files using an external text editor.
 scene/resource files using an external text editor.
 
 
@@ -521,7 +519,9 @@ Some notable renames you will need to perform in shaders are:
 - Texture filter and repeat modes are now set on individual uniforms, rather
 - Texture filter and repeat modes are now set on individual uniforms, rather
   than the texture files themselves.
   than the texture files themselves.
 - ``hint_albedo`` is now ``source_color``.
 - ``hint_albedo`` is now ``source_color``.
-- :ref:`Projection matrix variables were renamed. <doc_spatial_shader>`
+- :ref:`Built in matrix variables were renamed. <doc_spatial_shader>`
+- Particles shaders no longer use the ``vertex()`` processor function. Instead
+  they use ``start()`` and ``process()``.
 
 
 See :ref:`doc_shading_language` for more information.
 See :ref:`doc_shading_language` for more information.
 
 

+ 13 - 16
tutorials/shaders/shader_reference/particle_shader.rst

@@ -3,22 +3,19 @@
 Particle shaders
 Particle shaders
 ================
 ================
 
 
-Particle shaders are a special type of vertex shader that runs before the
-object is drawn. They are used for calculating material properties such as
-color, position, and rotation. They are drawn with any regular material for
-CanvasItem or Spatial, depending on whether they are 2D or 3D.
-
-Particle shaders are unique because they are not used to draw the object
-itself; they are used to calculate particle properties, which are then used
-by the CanvasItem of Spatial shader. They contain only a vertex processor
-function that outputs multiple properties (see built-ins below).
-
-Particle shaders use a transform feedback shader, which is a special type of
-vertex shader that runs on its own. It takes in data in a buffer like a regular
-vertex shader does, but it also outputs to data buffers instead of outputting
-to the fragment shader for pixel-processing. Because of this, transform feedback
-shaders can build on themselves each run, unlike other shaders that discard the
-data they have calculated once they draw to the frame buffer.
+Particle shaders are a special type of shader that runs before the object is
+drawn. They are used for calculating material properties such as color,
+position, and rotation. They are drawn with any regular material for CanvasItem
+or Spatial, depending on whether they are 2D or 3D.
+
+Particle shaders are unique because they are not used to draw the object itself;
+they are used to calculate particle properties, which are then used by the
+CanvasItem of Spatial shader. They contain two processor functions: ``start()``
+and ``process()``.
+
+Unlike other shader types, particle shaders keep the data that was output the
+previous frame. Therefore, particle shaders ca be used for complex effects that
+take place over multiple frames.
 
 
 .. note::
 .. note::