Table Of Contents

Particles

Redshift can render particles either via its instancing system or as lightweight sphere primitives.


Instancing pros and cons

  • Pro: Can support any shape, not just spheres

  • Con: Very large numbers of instances can cause "out of VRAM" issues


Sphere primitive pros and cons

  • Pro: Very lightweight and memory efficient
  • Pro: Can go out of core 

  • Con: Only a sphere shape is supporte3d
  • Con: May not be suitable for small details.


Sphere primitives may not be suitable for small detail scrutiny and artifacts like particle intersections may become visible when using them. If you notice this when using Sphere primitives please switch to Sphere Instances instead.


The particle systems in Redshift have the following limitations:

  • Displacement/Tessellation are not supported

  • Alembic Points are not supported

  • Semi-Transparency depth is limited to 16 levels

Redshift Particle Parameters

Redshift Particle Parameters


Render Object as Particles

Enabling this option will Render the Points on the Geo node as a Particle primitive.


Ignore Scale Attributes

Enabling this option will override any pscale point attribute values defined on the Points.


Default Scale

When the ‘Ignore Scale Attributes’ option is Enabled, this parameter will define the default scale of the Particles.


Global Scale Multiplier

Applies a global multiplier to the scale of the Particles.

Houdini Point Attributes

pscale - float

Uniform Size of the Particle expressed as the radius of the Unit Sphere.  1 scene unit = 0.5 pscale value.


v - vector

Velocity of the Particle

Example: pscale

Lets look at how pscale affects the size of the Particle Sphere Primitive. In the image below we have a Box that is exactly 1 scene unit in size, next to that we have a Point rendered as a Particle Primitive with no pscale attribute defined - in this scenario, the pscale defaults 0.10.


pscale undefined (default 0.10)


Lets explicitly set our pscale to 0.5, this will result in a Particle of 1 Scene Unit in size as depicted below:


pscale 0.5



Finally, lets enable ‘Ignore Scale Attributes’, - the pscale now defaults to 0.01 as pictured below:


Ignore Scale Attributes: Enabled


Tutorial

Basics

This section will describe how to setup a scene to render Points as a Particle Primitive.

Scene Files:

Open the Scene file fireworks_start - this scene contains a Ground Plane, Camera, Redshift ROP, and a Particle Simulation.

Click Play or Hit the Space Bar to start the Simulation, so that the Particles are Cached into Memory.


Tutorial Scene


In the Network view pane, click on the ‘fireworks_particles’ node to select it and set the Current Frame to 160.  In the Scene View, switch to the Geometry Spreadsheet Tab, and lets examine the attributes of the Particle System as pictured below:


Particle System Attributes


We see several Point attributes, P, Cd, etc.  The First thing we’ll do is add the Redshift OBJ params to the selected ‘fireworks_particles’ node.  On the Houdini top menu, click the Redshift menu to expand it, and click ‘Add OBJ Parameters’.


Adding Redshift OBJ Parameters to "fireworks_particle"


In the Parameters Pane, on the Redshift OBJ tab of the, click to select the Particles tab, and enable the ‘Render Object as Particles’ parameter.

Before we do an IPR render, lets configure the Panes to assist with that, right-click on the Render View tab to open a list of available Tab Types, at the bottom you’ll notice a Tab called Redshift Renderview, click it to change that Tab to a Redshift Renderview.


Switching to Redshift Renderview


Click the Start/Stop IPR button on the Redshift Renderview Tab to start the IPR render.


IPR render of particle system


UserData via Attributes in Shading

Redshift supports using arbitrary Attributes in the Shading Network.  You can use any Attribute defined at the Detail, Vertex, or Point level (in order of priority).  The Redshift plugin automatically extracts all Attributes from the Scene and makes them available in the Shading Network via the UserData shading nodes.

We are already using one of those Point Attributes, the P attribute. The Point level vector P attribute from our Particle system is determining where Particles are located in 3D space.  Our Particle system is also defining the Cd color attribute, so lets add that to our Shading.

In the Network pane, click the drop-down and select mat context.


Switching to "Mat"


With your cursor hovering over the Network pane, Hit the tab key and type ‘rsmat’ and hit the Enter key.  This will create a RS Material node as pictured below:


Creating a Redshift Material


With the new material selected, hit F2 and rename this node to ‘particle’.  Finally, enable the ‘Material’ flag on the node to identify this mat node as a Material that can be assigned to Geo in the scene.

Next set the Diffuse Color to Red and then we’ll assign it to our Particles.


Setting the RS Material Diffuse Color to red


We need to navigate back to OBJ context, there is a keyboard shortcut to do just that, the Alt+Left Arrow key is bound to the ‘Jump Back’ command (which returns you to the previous context in the Network pane).  Hold down the Alt key and hit the Left Arrow Key to jump back to the OBJ context.

Select the ‘fireworks_particle’ node, and in the Parameter Pane, select the Render Tab.  Locate the Material parameter, and notice towards its far right is the floating operator chooser - clicking it will display a floating window where we can select the ‘particle’ shading we just created.

Expand the mat context in the tree and select our ‘particle’ shading node, and finally, click Accept.  Now our ‘particle’ shading node has been applied to our Points. Lets do a quick IPR render to check it.


Previewing our red particles


Okay, looking good.  Lets go back to the mat context and pull in our Particle Colors via the Cd attribute. Hover your mouse over the Network pane and this time we’re going to hold the Alt Key and hit the Right Arrow key to Jump Forward, taking us to the Mat context.

Now hit the Tab button and type ‘rsudc’ and hit the Enter key, this will add the Color User Data shading node.


Creating User Data Color node



Click on the out port of the RSUserDataColor1 node and then click on the ‘Base Properties’ port on the particle node, this will present a list of available connections, select the Diffuse Color from this list.

Select the RSUserDataColor1 node and in the Attribute name parameter, change its value to Cd and hit the Enter key.


If we do an IPR render, we now have our Particle Colors from the Cd attribute.


Previewing per-particle colors



Our Particles now have Color from the Particle simulation.  

Since our Fireworks Particle scene is meant to be in Motion, lets add some Motion Blur to our Particles.


Motion Blur


The ‘v’ vector Attribute is responsible for defining how much a Point has moved during the current frame, and our Particle Simulation produces this ‘v’ Attribute automatically for us.  So, all we have to do is enable Motion Blur.

From the Redshift Render View pane, click the Houdini menu and select ‘Pick ROP node’, this will make the current ROP available in the Parameters pane. Motion Blur is available under Redshift -> Motion Blur tab under the Render Settings section of the Redshift ROP parameters window.  Click the ‘Enable Motion Blur’ checkbox to enable Motion Blur.

By default, Redshift calculates Motion Blur at the Primitive level, but we are rendering just simple Points here, so, we need to tell Redshift to apply blur at the Point level, we do this by checking ‘Enable Point Level Blur’, now lets do an IPR render.


Example scene with default motion blur settings



The Motion blur is just barely visible, because our Particles are not moving very fast per-frame.  For the purpose of this tutorial, lets exaggerate the Motion Blur, by making the following changes:


Frame Duration: 4


Shutter End: 2


Now lets do another IPR render.


Example with exaggerated motion blur settings


The Motion Blur is more pronounced and we can clearly see which Particles are moving quickly.