The X-Particles Material

This shader enables shading of the particles without any geometry. If you want to render your particles and have them cast shadows without using objects then this offers the fastest and highest quality way to do so.

If you need to render thousands or millions of particles then this is the only practical way, using objects with that number of particles would be far too slow and use far too much memory.

The XP Material can also render splines without the need for geometry, and has volumetric rendering for gas, smoke, fire, etc.

Using the shader

To use this shader you should:

  • create an X-Particles Material (you'll find this in the Create->Shader menu of the material manager)
  • apply the material to an Emitter object or an X-Particles Group object
  • add the 'X-Particles' post-effect to the Cinema 4D render settings (normally done automatically when the material is created)
  • play the animation and render the scene

Note: if you apply the material to a Group object and not to the emitter, only that group will be rendered with the material. This lets you assign different materials to particles from the same emitter. For example, if the emitter is emitting particles in two groups, you can assign one material to the first group and a different material to the second one.

To render a spline:

  • create an Emitter and a Trail object linked to it
  • apply the XP Material to the spline
  • alternatively, create any spline including Cinema 4D spline primitives and apply the material to the spline
  • render

For details of how to use the FLIP solver and the XP Material for volume rendering, see the main Volume Rendering page.

Interface

The material includes the following tabs:

Parameters

Basic tab

Note: this tab is ONLY visible in the Attribute Manager. It does not appear in the material editor.

Each particle, when rendered, can be given a set of UV coordinates, even though it is not an object. You can change the UV space and rotate the UVs with these settings.

UV Space

This drop-down assigns the UV space. It has three settings:

  • Flat: a flat projection which by default will make the particle appear as a flat disk. In this mode, any texture will always appear the same, no matter what the camera angle to the particle.
  • Spherical: a spherical projection which will make the particle appear as a sphere. In this mode, the appearance of any assigned texture will vary according to the camera angle to the particle (because if the angle changes, you will be looking at a different part of the sphere).
  • Tag: the projection used is the one in the texture tag for the material when it is assigned to an emitter. Note that not all projections will work (e.g. camera mapping will not work).

Rotate UVs

This slider allows you to rotate the UVs. The actual rotation for each particle is a random value between zero and the value in this slider. The effect is that, if a texture is assigned to the particle, instead of each particle looking identical the texture is randomly rotated, making each particle look different.

Space

This is the coordinate space used to sample shaders in the material. It has the following options:

  • Local
  • Particle
  • World
  • Screen
  • Camera

Scale

Used to change the sampling coordinates by scaling them up or down.

Color tab

For the buttons at the bottom of the interface, please see the 'Common interface elements' page.

Mode

This drop-down menu has four settings:

  • Single Color: particles are rendered with the colour from the Color setting.
  • Random Color: the particles will each have a randomly-selected colour.
  • Random (from Gradient): this option will enable the Color gradient and will randomly colour the particles using a colour taken from the gradient.
  • Particle Color: the particle color is used. This is useful, for example, if you have particles emitted from an object and which are picking up their colour from the object's texture.

Color

The colour used in the 'Single color' mode.

Color Gradient

The gradient used in the 'Random (from Gradient)' mode. It is unavailable in other modes.

Texture

In any mode, a shader or bitmap can be placed into this link and the particles will then be rendered with that shader (or bitmap). With this setting X-Particles can now be used as a true placard renderer, without the need for any additional geometry. Alpha textures can also be used by adding them to 'Texture' field in the Transparency tab.

Each particle has its own UV coordinates; in the Basic tab (found in the Attribute Manager) you can define the UV space used and an option to add random rotation to the particle UVs.

Blend

Four blend modes to blend the colour from the 'Texture' link with the colour from the 'Mode' drop-down.

Mix

The percentage mixture of the 'Texture' colour and colour from 'Mode'. A mix of 100% is entirely the 'Texture' colour' a mix of 0% is entirely from the 'Mode' setting.

Modifiers

In addition there are a series of modifiers which will alter the colour depending on certain particle parameters, including:

Age The age of the particle - younger particles have the colour on the left of the gradient
Speed Particle speed
Density The particle density
Depth The depth of field
Mass The particle mass setting
Temperature The particle temperature
Fuel The particle fuel value
P-P Distance The distance between a particle and its nearest neighbour
Volume The radius, density, or transparency of a volumetric particle
Life The lifespan of the particle.
Acceleration The particle's acceleration
Distance The distance of the particle from the camera
Surface See below
Radius The particle radius setting
Smoke The particle smoke density
Fire The particle burn value
Collider Distance The minimum distance from the particle to a collider object

When one of these switches is checked, additional controls are displayed. Most of these are all very similar, a typical set are the Speed controls:

Color

The Color gradient shows the range of colours of the rendered particles. The actual colour depends on the Min and Max settings. In this case, particles with a speed of zero would be coloured blue, those with a speed of 150 or more would be white. Speeds between those values would result in intermediate colours.

Note that the default gradient colours will vary depending on the modifier selected.

Min, Max

The range of values the shader will use to get the particle colour from the gradient.

Blend, Mix

The Blend setting allows you to blend between colours from the modifier gradient and the Color setting. A Mix of 100% means that only the gradient is used to determine the colour. A Mix of 0% means that only the Color setting is used. 'Blend' gives the mode used to blend the colours.

The Surface Modifier

This is a little different from the other modifiers:

When this modifier is active, and the particles are being emitted from an object, the particle colour is taken from the surface from which it is emitted.

Sample

This drop-down defines when the sampling of the surface should take place:

  • Birth: when the particle is created
  • Group Change: when the particle's group is changed
  • Collision: when a collision occurs
  • Distance: when the particle has travelled the distance in the 'Distance' setting
Continuous

If checked, the original sampling position (on the emitting object) is sampled for every frame rendered, so if the texture/surface is changing the particle color will also change.

Distance

The distance used when 'Sample' is set to 'Distance'.

Illumination

If checked, the particle is self-illuminating.

Shadows

If checked, illuminated particles are self-shadowing.

Blend, Mix

The Blend setting allows you to blend between colours from the modifier and the Color setting. A Mix of 100% means that only the modifier is used to determine the colour. A Mix of 0% means that only the Color setting is used. 'Blend' gives the mode used to blend the colours.

The Volume Modifier

This is different from the other modifiers, and is only available when 'Volumetric' is checked in the 'Volumetric' tab.

Mode

This determines the value of the volumetric particle which affects the colour. The options are:

  • Radius
  • Density
  • Transparency
Color

The colour gradient to blend with the particle colour.

Blend, Mix

The Blend setting allows you to blend between colours from the modifier gradient and the Color setting. A Mix of 100% means that only the gradient is used to determine the colour. A Mix of 0% means that only the Color setting is used. 'Blend' gives the mode used to blend the colours.

Transparency tab

Use this tab to set the opacity of the rendered particles.

Transparency

This sets the transparency of the rendered particles. A setting of 0% means no transparency (fully opaque).

Variation

This setting allows some variation to be added to the 'Transparency' value.

Texture

If a shader or bitmap is added to this link, it will be used to determine the transparency. This can act as an alpha map to cut out parts of the rendered particle.

Each particle has its own UV coordinates, in the Basic tab (found in the Attribute Manager) you can define the UV space used and an option to add random rotation to the particle UVs.

Blend

Four blend modes to blend the value from the 'Texture' link with the value from the 'Transparency' field.

Mix

The percentage mixture of the 'Texture' value and the value from 'Transparency'. A mix of 100% is entirely the 'Texture' value and a mix of 0% is entirely from the 'Transparency' setting.

Invert

If checked, inverts the transparency (so black becomes fully opaque rather than fully transparent).

Modifiers

The same modifiers as in the Color tab. The displayed settings differ slightly from the colour settings, here is the Speed modifier set:

The only difference is that the gradients use a greyscale value where black is fully opaque (zero transparency) and white is 100% transparent.

Noise

The Transparency tab has an extra modifier, Noise:

This allows you to add noise to the transparency.

Type

The noise type, as seen in the Cinema 4D Noise shader.

Invert

Inverts the noise sample.

Falloff

The method by which the noise from individual particles is blended:

  • Multiply: the greyscale values are multiplied
  • None: no blending
  • Subtract: the greyscale values are subtracted from one another
Static

If this switch is checked, the noise will not be affected by time, otherwise it will change as time passes (if the noise type supports that).

Scale

Scales the noise effect up and down.

Gamma

Alters the gamma value of the noise.

Brightness, Contrast, Low Clip, and High Clip

These are the same parameters as found in the standard Cinema 4D Noise shader. Please refer to the Cinema 4D Help files for details.

Bias

Controls the noise intensity. Lowering it shifts the level through the noise value to make the noise more prominent. Increasing it will flatten out the noise, making it less noisy.

Gain

As with 'Bias', this can be used to affect the noise intensity.

Fade

This setting softens the noise so it fades out further from the particle.

Phase

Increasing this value will move the noise with time, rather like an offset.

Detail

This is the noise detail, that is, the number of octaves the noise is built from.

Time Scale

This will scale the document time to speed up or slow down animated noise (assuming 'Static' is not checked).

Low Clip, High Clip

Low and high clipping values, as in the Cinema 4D Noise shader.

Coord

The coordinate space used to create the noise. If set to 'Default' the coordinates are taken from the 'Basic' tab.

Blend, Mix

The Blend setting allows you to blend between colours from the noise and the particle color. A Mix of 100% means that only the Noise is used to determine the colour. A Mix of 0% means that only the particle color is used. 'Blend' gives the mode used to blend the colours.

Size tab

Please note: this setting will not affect the thickness of rendered splines. It only affects the size of the rendered particle. To set the thickness of an X-Particles trail spline, use the Trail object thickness settings.

Size

This drop-down menu determines the size of the rendered particles. It has three settings.

Particle (Radius)

The particle radius determines the rendered size.

World

A custom size is set in the 'Custom' parameter. In this mode, particles which are farther from the camera are rendered smaller than those close to the camera.

Screen

A custom size is set in the 'Custom' parameter. In this mode, all particles are rendered the same size regardless of distance from the camera.

Custom

This setting is only available when 'Size' is set to 'World' or 'Screen'. It is a custom setting for the rendered particle size.

Variation

Regardless of the 'Size' mode, this setting is used to add variation to the size of the rendered particles.

Scale

Regardless of the 'Size' mode, this setting is used to scale the size of the rendered particles up or down.

Modifiers

The same modifiers as in the Color tab, with the exception of the Radius modifier, which is not relevant in this tab.

Fill tab

This tab is used to add additional particles ('fill particles') at render time only. It is a simple way to add very large numbers of extra particles when rendering without actually generating and maintaining the additional particles. Note that these are not 'real' particles - no geometry will be generated for them. The size of the fill particles will be the same as the corresponding 'real' particle, subject to the 'Size Variation' setting below.

Fill

Check this switch to add fill particles.

Count

The number of fill particles to add for each 'real' particle.

Radius (and Variation)

This is not the size of the fill particle, but the size of an imaginary sphere around each real particle in which the fill particles will be rendered.

Color Variation

The fill particles will have the same colour as their 'real' particle, but this setting can be used to add colour variation to the fill particles.

Trans Variation

The fill particles will have the same transparency as their 'real' particle, but this setting can be used to add transparency variation to the fill particles.

Size Variation

The fill particles will have the same size as their 'real' particle, but this setting can be used to add size variation to the fill particles.

Volumetric tab

This tab controls the volumetric rendering of particles. For details of how to use the FLIP solver and the XP Material for volume rendering, see the main Volume Rendering page.

To understand these settings, it is important to understand what the material is doing in volumetric mode. Each ray cast by Cinema 4D at render time is sampled at points along the ray (which are determined by the X-Particles render settings) through any volumetric particles hit.

Volumetric

Check this switch to enable volumetric rendering.

Density

The lower this is the more transparent the volume particle is. Each particle combines to increase the opacity of each sample point going through the volume.

Falloff

To see the falloff spline, click the small black arrow next to the word 'Density'. The spline controls the density falloff from the centre of the particle's volume (which is spherical).

Blend

The ray may hit multiple particles in the scene and this drop-down controls how the particle density volumes are blended together.

There are four options:

Mix

This option treats each volume as its own density with the first hit occluding any further along the ray.

Isosurface

Here, the density is clipped at the 'Iso Level' to give a skinner like rendering, rendering the isosurface of the particle volume.

Weighted

The blending is based on distance weighting from the particle.

Absolute

The maximum density of overlapping volumes is used.

Iso Level

This is only available if 'Blend' is set to 'Isosurface' (see above).

Mode

Once the 'Blend' is selected the curve used to blend the density values can be changed here. To use a custom curve select 'Custom' and modify the spline in the 'Curve' setting.

The drop-down has several options:

  • Smooth
  • Cube
  • Blinn (Blobbies)
  • Wyvill
  • Links
  • RenderMan
  • Hart
  • Geiss
  • Custom

Curve

The blending curve to use when 'Mode' is set to 'Custom'.

Normal

When checked, the material calculates a normal based on the density value. This is used with the illumination modes Diffuse and Phong and is mainly useful when 'Blend' is set to 'Isosurface'.

Use Transparency

Only available if Normal is checked. When checked, transparency (e.g. noise) will be included in the normal calculation.

Voxels

When checked, rather than rendering each particle as a volume it combines them into voxels (the size of which is set with the 'Size' parameter) to give a voxel-based volumetric render.

Size

The voxel size if 'Voxels' is checked.

Illumination tab

Lighting

Mode

The style of rendered particle. The options are:

Flat

Basic, flat shading.

Phong

Standard phong shading with specular settings.

Diffuse

Renders as shaded spheres rather than discs.

Fuzzy

Produces soft, fuzzy-edged particles

Neon

Particles have a surrounding glow.

Henyey-Greenstein, Schlick and Rayleigh

These are all scattering illumination models, with each giving a different look. It is suggested the user try each and select the one giving the desired effect.

These modes and their settings repay experimentation as it is difficult to describe the different effects of each. Various parameters will become available depending on the selected style.

Normals

The Diffuse and Phong illumination models require a normal to be provided. This drop-down lets you select the source of the normal. It has the following options:

  • Particle
  • Velocity
  • X Axis
  • Y Axis
  • Z Axis
  • Light

Self Illumination

The amount of self-illumination of the particles can be increased with this control. It has a greater effect in some models (e.g. Phong) than in others.

Diffuse

The amount of colour diffusion. Only available for Diffuse and Phong models. Reducing this value will result in flatter colour shading.

Specular, Width

Only available in the Phong model. These parameters control the brightness ('Specular') and size ('Width') of the specular highlight.

Width, Falloff spline

Only available in the Fuzzy model. These parameters control the fuzziness of the rendered particle.

Width, Falloff

Only available in the Neon model. They control the size and falloff of the effect.

Eccentricity

Only available in the Henyey-Greenstein and Schlick models. These are scattering illumination models and this setting controls the strength of the scattering.

Shadows

Color

If checked, this switch enables coloured shadows (from the lights).

Receive Density

As in the Cinema 4D lights, this is the density (strength) of shadows from geometry in the scene cast onto the particles.

Cast Density

Alters the density of the shadow cast by the particles. A value of zero results in no shadows.

Self-Density

This is the density of shadows received by particles from other particles.

Rel. Bias

This setting helps to keep the shadows from self-shadowing (so a particle doesn't shadow itself). The setting is a percentage of the particles radius.