The Property Test operator tests if particles satisfy property-based conditions.
Property List: the list of testable particle properties.
Test TRUE if property is: various conditions that will be used in the test.
Self: the particle’s own properties will be tested.
Target: properties of the particle’s target particle will be tested.
Channel: the custom float channel containing the target particle ID.
Absolute/Custom Float: controls whether the test value will be taken from the spinner, or a custom float data channel.
Value: the absolute test value.
Channel: the custom float channel from which to take the value.
Neighbors within particle’s radius: a particle will be considered a neighbor if its position is within the searching particle’s radius.
Particle within neighbors’ radius: a particle will be considered a neighbor if the searching particle is within its radius.
Particle and neighbor radii overlap: a particle will be considered a neighbor if its radius overlaps with the searching particle’s radius.
Absolute radius: the neighbor search radius of each particle will be set to a specific value.
Radius: the specific neighbor search radius value.
Shape radius: the neighbor search radius of each particle will be set to each particle’s shape mesh radius.
Scale radius: the neighbor search radius of each particle will be set to each particle’s maximum scale dimension.
Multiplier: the multiplier to apply to shape/scale radius values.
Look ahead: the search will be conducted at a location this far along the particle’s velocity vector.
Field of view: the search will be limited to particles within this number of degrees to the particle’s trajectory.
Sweep test: searches for neighbors along each particle’s entire trajectory, not just the particle’s starting position.
The noise settings allow you to offset the way in which particle positions are measured during the neighbor test.
Strength: the strength of the noise.
Frequency: the frequency of the noise. Increasing this value will evolve the noise pattern over time.
Scale: the scale of the noise.
Roughness: the roughness of the noise.
Iterations: the number of iterations to use to calculate the noise.
Sometimes you may want to flatten an axis for your neighbor test. For example, imagine a stack of particles that are spaced far apart along the world Z-axis, but whose X and Y-axis position values are all the same. From above, the particles would appear to perfectly overlap each other, but from the side they would appear far apart. A standard neighbor test may not flag any of these particles as neighbors due to their Z-axis spacing, but by flattening the Z-axis, to the neighbor test they would all appear to overlap. By flattening an axis you can essentially conduct the neighbor test in two dimensions, which can help to isolate overlaps that a standard three dimensional neighbor test may not.
Enable clustering: controls whether neighbor candidates will be deterined by cluster values.
Channel: the particle data channel to get cluster values from.
Cluster if equal: neighbor candidates must have equal cluster values.
Cluster if different: neighbor candidates must have different cluster values.
Test by ID: controls whether only bindings which have a matching ID will be tested.
ID: the ID to match.
TRUE if all broken: controls whether the test condition will be satisfied if all bindings are broken.
Particle binds/PhysX binds: controls which bind type to perform the search on.
ID: the binding ID to look for in the bind search.
Depth: the maximum depth in the binding hierarchy to search for bindings with the matching ID.
Short circuit: when enabled, the bind search will stop once the test condition is met.
The binding search travels through the binding connectivity graph of particles, counting how many other particles one particular particle is connected to/through. For large connectivity graphs (ex: many particles bound together) this can be a slow process. Enabling the “short circuit” option will cancel the search as soon as the test condition is met. This can improve search performance, however, if you’re saving the test result to a custom float channel, the value may not be accurate (because the search terminated when the condition was met, not when all binds were counted, exhaustively).
Test by ID: controls whether only bindings which have a matching ID will be counted.
ID: the ID to match.