This node renders a point sprite for every particle. A point sprite is a quad which is positioned in 3D space, is rotated to face the camera and may be textured. This is the most commonly used rendering node for particle effects.
Particles can be sorted in back to front rendering order if Sort Particles is enabled, allowing transparent particles to render and blend together correctly. The Blend Mode parameter is used to control the blend mode between individual particles and also between the particles and the rest of the scene. The Particle Alpha parameter can be used to control the transparency of individual particles, scaling the alpha value already on the particle’s colour channel.
The particle size may be controlled by the Particle Size and Particle X and Y Scale parameters, which are multiplied with the scale on the particle’s emitter material. The scale can be randomised using the Size Randomness parameter. The Scale Over Time control can be used to make the particle grow or shrink over its life time. The Scale / Alpha Mode control can be used to additionally scale particles by the alpha value of their colour channel, allowing Shading nodes to have an effect on the scale of particles by modifying the alpha. Particles are usually camera-aligned so sprites are always oriented to the view direction but the Alignment parameter may be used to orient them along the particle’s normal direction instead. The 2D rotation of sprites may be controlled by the Rotation and Rotation Randomness parameters.
Particles, like other 3D objects, are rendered to normalised viewport coordinates with sub-pixel accuracy. For some forms of output target such as low resolution LED screens it may be desirable to make particles fit exactly to pixels. The Pixel-Align Output control can be used to snap them to pixel boundaries and the size limits may optionally be specified in pixels.
An image may be used on the particle. It can be set via the Texture parameter, or via a Video Node connected to the Image Node input. If an image is not used the sprites will render as plain rectangles. The alpha channel of the image is used to affect particle transparency. So that animations can be played on each particle or so that each particle can use a different image, it is possible to treat the image as multiple frames laid out within the texture. The Texture Animation parameters control this. If Use Texture Animation is enabled, the image is considered to be a series of frames laid out in a regular grid of cells defined by Num Frames X and Num Frames Y. Each particle then plays the animation frames sequentially at a rate defined by Texture Animation Rate, with loop points set by Texture Animation End Frame and Texture Animation Loop Frame. The Texture Start Frame Mode parameter is used to determine how the start frame of the animation is chosen per particle: from the start, from a random frame, or using the particle’s emission sequence or emitter. If the Texture Animation Rate is set to 0 and a random start frame is used, each particle will use a different static frame of the texture but no animation will occur.
Motion blur effects may be simulated on particles in an efficient way using the Motion Blur Amount parameter, which causes sprites to be stretched along their direction of motion. Depth of field may be simulated by blurring and enlarging the sprites further away from the camera focus plane.
|This image is taken from the “imag_samples.dfx” sample project.|
|Texture||Select a texture to be rendered at each particles position.|
|Visible||Control whether the node is visible or not to the scene.|
|Particle Alpha||Control the alpha value for each particle.|
|Blend Mode||Edit the blend mode used for the particles. See Blend Modes for details.|
|Particle Size||Edit the size of the particles once they are rendered.|
|Particle X Scale||Control the x-scale of the sprites emitted.|
|Particle Y Scale||Control the y-scale of the sprites emitted.|
|Particle Use Amount||Percentage of particles that can be used by the node.|
|Pixel-Align Output||Align the rendered points exactly to screen pixels, with no sub-pixel interpolation.|
|Particle Scale Coeffs||How much the particle scales are affected by the node at different stages of the particles life cycle. Values 1 and 2 are control points, and are used to control the curve between values 0 and 3.|
|Screen Size Limits||The minimum and maximum size of the rendered particle in normalised screen coordiates.|
|Specify Size Limits In Pixels||Indicates whether particle size limits are specified in normalised viewport coordinates which are consistent across different render resolutions, or in pixels.|
|Size Randomness||Control the randomness in size of the particles.|
|Scale Over Time||Change the scale of the sprites over time.|
|Scale Over Time Mode|| How the particle is scaled over time.
|Scale / Alpha Mode||Control how the scale and alpha modes relate to each other.|
|Rotation||Control the rotation of the sprites.|
|Rotation Randomness||Give the meshes a randomised rotation.|
|Rotation Follows Direction||Toggle whether the rotation of the particles follows the direction the particle is moving in.|
|Alignment||Control what the orientation of the sprites aligns too once spawned.|
|Luminance Randomness||Control how much randomness is in the luminance of the rendered particles.|
|Render Geometry Type||Choose whether the particles spawn as single pixel points or spawn as a sprite texture.|
|Blur Mip Levels||The number of MIP levels in the image that may be used for blurring effects.|
|Sort Key Value||Biases the depth-based render order, to force the particle system to be drawn before or after other objects in the scene.|
|Sort Particles||Toggle whether the particles are sorted by depth from camera from back to front before rendering, enabling transparent particles to be rendered correctly.|
|Depth Bias||Offsets particles in depth so they are closer or further away from the camera, changing the point at which they intersect with the rest of the scene.|
|Motion Blur Amount||Control the amount of motion blur.|
|Mipmap Enabled||Toggle whether mipmaps are enabled.|
|Depth Of Field Amount||How much depth of field effects the particles.|
|Randomise DOF Amount||Randomises the position of particles based on their distance from the focus plane.|
|Depth Of Field Texture Size||The size of the texture used when depth of field is enabled.|
|Use Texture Animation||Edit whether the texture animation is shown with the rendering.|
|Texture Animation Rate||Edit whether the texture animation is shown with the rendering.|
|Texture Animation Loop Frame||The index of the frame that will be jumped to after a loop.|
|Texture Animation End Frame||The index of the last frame in the texture, which causes a loop when reached.|
|Num Frames X||Change how many tiles the sprite image will be spread across the x axis.|
|Num Frames Y||Change how many tiles the sprite image will be spread across the y axis.|
|Texture Start Frame Mode|| The method by which the start frame of the texture animation is chosen.
|Choose Frame By Best Fit To Colour||Choose the texture animation frame by analysing which frame best fits the colour of the particle.|
|Lit||Control whether the particles are lit.|
|Volumetric Shadows||Enable volumetric shadows.|
|Volumetric Shadows Alpha||The transparency of the volumetric shadows.|
|Cast Shadows||Cast shadows from particles onto the scene.|
|Shadow Particle Size||The size of the particles when rendered into the shadow map.|
|Shadow Particle Alpha||The transparency of the particles when rendered into the shadow map.|
|Local Lighting Enabled||Toggles per-pixel lighting on particles.|
|Curvature||The curvature of the particle when used for lighting.|
|Name||Description||Typical Node Input|
|Image Node||Used to provide a texture for sprite rendering.||Video Node|
|Lights||Control which light nodes affect the node.||Light|
|Bounding Box||Limit the area for which shadow casting will be calculated.||Bounding Box|
|Rendered Emitters||Specify which emitters are rendered using this renderer. By default, all emitters connected to the same particle root as the renderer are rendered.||Primitive Emitter|
|Transform Modifier||Links all transform properties to the input node.||Null|
|Target Node||Always faces the x-axis towards the inputs anchor point.||Null|
|Local Transform Override||Override the transformation values of the node, relative to its parent.||Null|
The outputs section for this node is currently being worked on.