This daemon is used to swap particles from one fluid container to another and to separate them. "Filter" requires two fluid containers: a source and a target. Both fluids should have equal “Resolution” values to avoid instabilities.
Define one or more particle source(s) by dragging a domain to the field. Target and source domains must share the same "Resolution" value.
This is the domain where the particles will be moved to when the adjusted “Condition” is true. If the field is left blank the filtered particles will be deleted. Target and source domains must share the same "Resolution" value.
These are your options:
If “Filter When False” is set to “Yes” all particles which do not fulfil the given condition will be sent to this emitter. This field does not necessarily need an entry and can be left blank.
You can select the desired condition by simply choosing one of the eight predefined options:
When you are shifting particles you also need an attribute to be compared, e.g. “If speed is greater than 2.0 shift the particle from the source to the target domain”. In this case, “Attribute” is “Speed”, the “Value” parameter is 2.0 and the “Condition” is “greater than”.
This is the trigger value for the condition. Please note that this field is inactive with “Condition” set to “In Range”, “Out of Range” and “Expression”.
With “Condition” is set to “In Range” or “Out of Range”, this field becomes unlocked, giving you the possibility to define a range between “Min Value” and “Max Value”.
With “Condition” set to “In Range” or “Out of Range”, this field becomes unlocked, giving you the possibility to define a range between “Min Value” and “Max Value”.
This field becomes active when “Condition” is set to “Expression”. RealFlow|Cinema 4D constantly checks against the given expression during a simulation and decides whether the condition is fulfilled or not. There is a long list of keywords that can be used to create a certain condition:
Attribute | Expression keyword |
---|---|
Age |
|
Collision |
|
Density |
|
Force |
|
ID |
|
Position |
|
Velocity |
|
An example: Let's assume you want to filter the particles from “Fluid.1” against the particles' velocities:
If a particle' speed is lower than 2.0 the particle should be attached to “Fluid.2”:
particle.speed < 2.0
You can use any other keyword from the table and modify the expression to your needs. It is also possible to combine expressions, e.g.
if particle.age > particle.velocity
When the given condition is fulfilled RealFlow will create additional particles – their number is defined under “# child”.
Here the number of child particles is specified when a certain condition is fulfilled. You should start with moderate values, because the amount of additional particles can become huge.
With this option it is possible to restrict the daemon to a certain volume.
With “Yes”, the particles inside the daemon's bounding box will be affected; “No” only filters the particles outside this box.
This feature is needed when you work with cached fluids. Here, the simulation cache is cleared with each frame and new particles are loaded from the cached file sequence. Using them as source emitters will lead to instabilities, because the particles are not moved, but simply copied. If you also clear the target emitters with each step, you can avoid these problems. Please note that the result with this mode might slightly differ from the original simulation of the source domain. Here, the target is only overwritten when the given "Condition" is fulfilled.
This feature is needed when you work with cached fluids. Here, the simulation cache is cleared with each frame and new particles are loaded from the cached file sequence. Using them as source emitters will lead to instabilities, because the particles are not moved, but simply copied. If you also clear the target emitters with each step, you can avoid these problems. Please note that the result with this mode might slightly differ from the original simulation of the source emitter. Here, the target is only overwritten when the given "Condition" is not fulfilled.