Cinema 4D Particle System - Arnold for Cinema4d
C4DtoA can render particles generated by the Particle System released in Cinema 4D 2024.4.
Workflow
Particle Group
All Particle Groups in the scene are rendered by default as spheres with a default standard_surface
shader displaying the color of the particles.
If you want to modify the settings, you have to add an Arnold tag to the Particle Group object.
Emitters do not store any particles, thus adding the Arnold tag and material to an Emitter has no effect. You have to add them to particle groups.
Multi Group
Multi Groups can hold and modify multiple particle groups. They are not rendered by default. If you want to render them, you have to add an Arnold tag to the Multi Group object and change the Render mode.
Multi Groups and Particle Groups both store particles, thus they might be rendering twice, once by the Multi Group and once by the Particle Group. Therefore if you enable rendering of a Multi Group, you may have to disable rendering of the respective Particle Groups.
Shading
You can use a user_data
shader in a shading graph to read specific properties of the particles, such as the color and age.
![]() |
Particle color displayed via a user_data_rgb shader |
Materials have to be applied to Particle Groups and not Emitters, just like the Arnold tag.
Channels
You can export particle properties (channels) as user parameters and read them in a shader graph via user_data
shaders. Radius and color is exported by default, but you can export all other available properties, such as:
- velocity (vector)
- angular velocity (vector)
- age (float)
- lifetime (float)
- distance (float)
Channels can be mapped to the 0-1 range (between the minimum and maximum value in the current frame) where it's possible. In case you need to map the values to a custom range, you can export the minimum and maximum values as user data. They are labelled with the _min
and _max
postfix, such as 'distance_min' and 'distance_max'.
Motion blur
You can control here how the motion blur effect is rendered. Vector motion blur is enabled by default, that means the velocity and angular velocity vectors are used to calculate particle motion in the given frame.
In some cases, such as when particles move along a curve, vector motion blur does not give you the desired result, and motion blur has to be calculated based on the simulated position instead (Use motion vector turned off). Note, that particles are not simulated in subframes, therefore you have to cache the simulation to render motion blur properly.
To display motion blur in the IPR you have to cache the simulation.