This page is a work in progress.

Table Of Contents


Particles 

Redshift supports a number of different particle setups that can be rendered inside of Cinema 4D. These include the native particle system, particles imported in through Alembic files from programs such as Houdini, as well as plugins like X-Particles. These particles can be rendered out as simple instanced primitives, custom geometry, or using Redshift's native optimized sphere primitive. You can view the benefits of each one here



Imported particles rendered with motion blur

Redshift Object Tag

The Redshift Object Tag allows you to adjust different particle parameters, per emitter/source in your scene. This can be applied by right clicking our emitter and finding the Redshift tags section.


Redshift Object Tag


The Object tag can be applied to emitters, thinking particle setups, and as well as alembic file imports. Please note the Particles tab will ONLY show up when applied to those objects.


Particle Parameters

Redshift allows you to control the individual shape of each particle from a list of presets, as well as letting you define the particle with custom geometry we can drag and drop. We can also control the overall scale of our particles with the Scale Multiplier

Mode

There are 5 different particle modes that are described below, including the visual and technical differences.


Redshift Object Tag 



To avoid some confusion the Mode "Spheres" has now been renamed to "Optimized Spheres" as shown above.


Point InstancesSphere InstancesQuad InstancesCustom Objects (Pyramids)Optimized Spheres

Important

Sphere Instance and Optimized Spheres mode look nearly identical, but the Optimized Spheres mode is Redshift's native "point" primitive. Sphere Instance is just a mesh sphere created with C4D and instanced with redshift.

Sphere Instances vs Optimized Spheres

The benefits of using the native sphere primitive (Optimized Spheres mode) is that it's very lightweight, even more so than an instance also it can go out of core. Instances are also fairly lightweight in terms of memory, but when you start getting into the millions you can run into out-of-VRAM problems. When working with extremely high counts of particles the Optimized Spheres mode is recommended.


Out of core means if your GPU runs out of memory, because of scene size, texture size, ect. it will use the system's memory instead.


Custom Objects

The Custom Objects mode allows you to drag drop objects that will be instanced throughout your particle setup. 

Custom Objects Mode


The Distribution and Random Seed options only become available only during the Custom Objects mode. These are effective when using multiple objects.

Distribution

There are two options for distribution, Sequential & Random. Sequential will distribute our objects in a logical order. As you can see in the example below we have 3 different custom objects; Pyramid, Sphere, and Platonic. So the first 3 particles that come out will be a Pyramid, Sphere, and Platonic then repeat in that order every 3 particles. Random mode will randomly select through our custom objects for each particle and this will also allow us to use the Random Seed option as you can see in the example below.




Sequential

Random


Random Seed

Used only in conjunction with Custom Objects and Random distribution, allows you to randomize the distribution even further.

Scale Multipler

The Scale Multipler affects the overall scale of your particles.


Scale multipler .05Scale multipler .1Scale multipler .2

Please note the Scale Multiplier is dependent on your scene scale, so these numbers might not always work if you. It is suggested to start with a small number and scale up to your desired size.

Emitter

Redshift supports rendering out particles generated from the Emitter inside of Cinema 4D. To get your particles to show up in the renderview all you have to do is apply a redshift tag to the Emitter and set the mode to Spheres. Then adjust the settings accordingly.


Standard Cinema 4D Particles


Tracers

You can render out tracers by adding a Redshift Object Tag and using the different Curve options shown below. For more information on Curve specific features, click here.



Redshift Object Tag


The Curve option will only appear on objects such as Splines,Tracers, XP Trails, and MoSpline.


Thinking Particles

Redshift supports rendering Thinking Particles inside of Cinema 4D. To render thinking particles make sure you have setup your particle geometry, demonstrated below.


Thinking Particles


Add a Redshift Object tag to your thinking particle setup to get them to render. All the particle parameters are described here.


Redshift Object Tag


X-Particles

Redshift supports rendering X-Particles inside of Cinema 4D. To render your X-Particles setups you need to add a Redshift Object Tag to your respected xpEmitters and adjust the particle settings. The particle parameters are described here if you need help.


Redshift Object Tag on xpEmitter



xpTrails

Redshift supports rendering xpTrails inside of Cinema 4D. To render your xpTrail setups you need to add a Redshift Object Tag and use the Curve options. For more information on Curve specific features, click here.



Redshift Object Tag on xpTrail


Trail Colors

X-Particles 4 added support for extracting the per-trail color. For polygon-based curve primitives, the color value is available in the ShaderGraph through the RS Vertex Attribute node using the RSCurveColor attribute. For Hair strands, the color is available from the color output of the RS C4D Hair Attributes node.

Trail colors are available from X-Particles 4 build 690 or higher

Importing Alembic Particles

Cinema 4D supports importing particle setups from other programs, such as Houdini through an Alembic file. When importing an alembic file with particles, Cinema 4D automatically converts these to Thinking Particles, which can be rendered with Redshift as seen here. To import your particles go to File → Merge, then locate your Alembic (abc) file.


Importing Alembic file



Shading

Redshift supports a number of different attributes that can be used for shading inside the RS Shader Graph. You can access these differnt attributes via the shader graph through differnt User Data Nodes by using the  button to have a dropdown menu of differnt options. Alternatively, if you the know the attribute exact name you can type it in as well.


Note

Attribute Names are case and space sensitive.


Access Attributes


Attributes

Redshift supports attributes directly from X-Particles as well as attributes related to Thinking Particles (TP Data Channels). Also particles that are imported from other applications through an Alembic file (internally converted to Thinking Particles), also have there attributes imported. These can be viewed under Simulate →  Thinking Particles → Thinking Particles Settings → Channels. For more information on importing particles click here.

Below is an example list of the imported attributes that can then be used in the Redshift Shader Graph.


Thinking Particles Attributes Imported from Houdini


Note

These above attributes are not predefined, but are dependent on the application and parameters used to export the Alembic file

Important

The name of imported attributes must match exactly what is shown in the Data Channels list. In the above example the correct attribute name for life is life(Real) not life


Particle Attribute Reference

Redshift exposes the following built-in particle attributes 


RSPID

  • Meaning: The particle ID

  • Type: Integer

  • Availability: Emitter / Thinking Particles / X-Particles

RSPAge

  • Meaning: The particle current age
  • Type: Scalar
  • Availability: Emitter / Thinking Particles / X-Particles

RSPLife

  • Meaning: The particle total life span
  • Type: Scalar

  • Availability: Emitter / Thinking Particles / X-Particles

RSPAgeNormalized

  • Meaning: The particle age remapped as a 0.0 to 1.0 value

  • Type: Scalar
  • Availability: Emitter / Thinking Particles / X-Particles

RSPColor

  • Meaning: The color of the particle

  • Type: Color

  • Availability: Thinking Particles / X-Particles

RSPVelocity

  • Meaning: The particle velocity

  • Type: Scalar
  • Availability: Thinking Particles / X-Particles

RSPMass

  • Meaning: The particle mass

  • Type: Scalar
  • Availability: Thinking Particles / X-Particles

RSPSpinAxis

  • Meaning: The particle rotation axis
  • Type: Vector
  • Availability: Thinking Particles

RSPSpinSpeed

  • Meaning: The particle rotation speed
  • Type: Scalar
  • Availability: Thinking Particles

RSPSize

  • Meaning: The particle size
  • Type: Scalar
  • Availability: Thinking Particles / X-Particles

RSPScale

  • Meaning: The particle scale
  • Type: Vector
  • Availability: Thinking Particles

RSPAlignmentX

  • Meaning: The X-Axis of the particle alignment matrix
  • Type: Vector
  • Availability: Thinking Particles

RSPAlignmentY

  • Meaning: The Y-Axis of the particle alignment matrix

  • Type: Vector

  • Availability: Thinking Particles

RSPAlignmentZ

  • Meaning: The Z-Axis of the particle alignment matrix

  • Type: Vector

  • Availability: Thinking Particles

RSPRandomSeed

  • Meaning: The particle random seed

  • Type: Integer

  • Availability: Thinking Particles

RSPGroupID

  • Meaning: The particle group ID

  • Type: Integer

  • Availability: X-Particles

RSPDensity

  • Meaning: The particle density during fluid simulations

  • Type: Scalar

  • Availability: X-Particles

RSPRotation

  • Meaning: The particle rotation vector

  • Type: Vector

  • Availability: X-Particles

RSPDistanceTravelled

  • Meaning: The distance traveled by the particle
  • Type: Scalar

  • Availability: X-Particles

RSPSpin

  • Meaning: The particle spin vector

  • Type: Vector

  • Availability: X-Particles

RSPTemperature

  • Meaning: The temperature of the particle

  • Type: Scalar

  • Availability: X-Particles

RSPFuel

  • Meaning: The particle's fuel amount

  • Type: Scalar

  • Availability: X-Particles

RSPFire

  • Meaning: The particle's fire amount

  • Type: Scalar

  • Availability: X-Particles

RSPSmoke

  • Meaning: The particle's smoke density

  • Type: Scalar

  • Availability: X-Particles

RSPExpansion

  • Meaning: the particle's expansion amount

  • Type: Scalar

  • Availability: X-Particles

RSPUVW

  • Meaning: The UVW coordinates of the particle

  • Type: Vector

  • Availability: X-Particles

RSPTransparency

  • Meaning: The particle's transparency value

  • Type: Scalar

  • Availability: X-Particles

Particle Material

The Redshift Particle Material is a preset material with a Color user data set to RSPColor (Particle Color Attribute) that is connected to the Diffuse channel. This will take your Particles default color and use it as the diffuse color of your Redshift Material.

Particle Material


You can shade particles with a regualr Redshift Material, the Particle Material is just a preset to save you a few clicks not a special material for only particles.

X-Particles

Here is an example of our X-Particles in the viewport then with the Particle Material applied. As you can see we are getting that same grayscale gradient as our viewport now in our Renderview. Because we are working in our regular Redshift Shader Graph we can use any nodes we want in our shading process. As you can see below we can remap our grayscale gradient with a Ramp to any colors we want. To do this we connect a Ramp Node in between our User Data color node and our RS material that came connected in our default Particle Material. We set the ramp source to Alt mode (which would be our user data node using our RSPColor attribute) and change the colors to a purple and gold color in our ramp gradient.


Viewport X-ParticlesDefualt Particle Material appliedRemapped Particle Material applied

Another attribute we can use to shade our X-Particles is the RSPAgeNormalized. To use this we need a Scalar Data Node and set the attribute to Age Normalized. This will allow us to control our particle colors based on there age (How long the particle stays alive).


Scalar User Data Node


Add a Ramp node in between our Scalar User Data and Diffuse color and add a couple of colors to our ramp node. Make sure the ramp source is set to alt.


RS Ramp


As you can see now as we progress through our time line the particles are changing colors based off there age going from left to right on our ramp gradient. 


Timeline at 5 secondsTimeline at 10 secondsTimeline at 15 seconds


Alembic Particles / Thinking Particles

Whether you are working with Thinking Particles inside of Cinema 4D or have imported particles through an Alembic file (more information here), Redshift supports a number of different attributes that can be used for shading. To look at all the attributes available for you to use, you can go to your Thinking Particles settings and look at the channels. Below is a particle system imported through an Alembic file from Houdini.


Thinking Partciles Data Channels


To shade these particles we are going to use the pScale attribute inside our shader graph. So let's create a new Particle Material and bring a Scalar user data node and set the attribute to pScale.


Scalar User Data


Next we bring in a Ramp node to remap our Scalar User Data. We want to connect this in between our Scalar User Data and our RS material and set the source mode to Alt. Then we are going to choose two different colors.


Remapping Scalar data



As you can see now the color is changing based on the size of our particles. The bigger particles in the middle stay green and the particles that are flying away and getting smaller are turning purple.


Particles shaded based on pScale



Any scalar value can be fed into a Ramp node to remap the colors from left (0.0) to right to (1.0). You can also use a change range to scale a real number to a scalar, for example a value from 0-300 can be remapped to 0-1.


Caching Simulations

Caching particle systems is essential, especially to get consistent results when using Motion Blur. Redshift needs to sample a scene before and after the current frame to determine the positions and trajectory of particles, to allow Redshift to do this we need to cache our particles. Below is the different ways to cache our setups inside of Cinema 4D.


X-Particles

To Cache your X-Particles you can create a Cache Object and choose your folder then click Build Cache.


Emitter

To Cache your Emitter particles you can go to Simulate → Particles → Bake Particles.


Thinking Particles

There is no Real way to bake Thinking Particles but there is a work around if you must. You can Create a cloner object and set the mode to Object then go to your Thinking particle settings and drag the TP group to your cloner.



Next we are going to make a sphere and drag it under our Cloner and turn on render instances. Now we can right click our cloner object and use a mograph cache tag then bake. 



Another Option is to Export your thinking particles as an alembic file and re-import them into your file.

Motion Blur

We can enable motion blur on our particles by going to the motion blur settings and checking the box. You can view the specific Motion Blur section here.


Motion Blur Tab


As you can see below we have our particles with different frame durations for stronger motion blur effect. 


No motion BlurMotion Blur enabled Frame Duration:2 (Default)Motion Blur enabled Frame Duration:5

If you are getting inconsistent motion blur results make sure to bake your simulations.


Example: Rain

We can can setup a basic rain system with particles and Motion Blur inside of Redshift and Cinema 4D. 


First let's set up an emitter with a few modifiers. 

C4D Emitter


Next add a Redshift Object Tag to our emitter and adjust a few of our settings. We are going to make the particles pretty small and we are going to use the optimized sphere mode to emulate real rain.


Redshift Object Tag

Now we want to add a water like material to our emitter. Just a basic refractive material.


Material Settings


Before we enable Motion Blur we want to bake our particle simulation.


Bake Particles

Now we're going to enable Motion Blur and adjust some of the unified sampling settings.

 

Redshift Settings


You can now merge this setup with any of your scenes.


Example: Houdini Particles

We can take particles generated in Houdini, bring them into Cinema 4D and then render them with Redshift. When you import particles from Houdini with an alembic file the particles are automatically converted into Thinking Particles. More information on that here.

So first we are going to locate our Alembic file that we exported from Houdini and merge it into our current scene.



Now we are going to add our Redshift Object Tag and adjust the some of the parameters.



The Scale Multiplier is dependent on the scene scale in Cinema 4D and Houdini.



Next we are going to setup our material for our particles. First lets check our available attributes, under our Thinking Particle settings, to use for shading. Check here for more information.



Now we're going to set up the material. We're using a User Scalar Data node and the age(Real) attribute connected to a Change Range node. That is then connected into a Ramp node to remap those values to colors we selected.


Setting up pScale

Let's set up our pScale attribute to effect our scale of our particles.


First we need to add an Xpresso tag to our particles and open up the Xpresso Editor.



Next we need a couple of nodes to complete our setup. First we need to bring in a P Pass node, and then go to our Thinking Particle Settings and drag in our group.



Then we need two more nodes, the GetData node and SetData node.Then we need to expose the pScale parameter on the GetData and the Size parameter on our SetData node. We connect the P Pass to our GetData node, then connect our pScale(Real) on our GetData to our SetData's Size parameter. We also need to connect our P Pass to our SetData in the Particle parameter. Note that you might need to reset your timeline for the scale to become effective.



No pScale (all particles same size)pScale Setup