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, or Create->Extensions menu in C4D R21)
- 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 enables 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 enables 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 enables 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 enables 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 enables 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 enables 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 enables 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 little 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.
Note that, if you are using Global Illumination in Cinema 4D, particles will not render unless you set this value to be greater than zero.
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.