On this page |
Comparison
Old POPS |
Dynamic Particles |
---|---|
Each generator node created a separate particle primitive, and nodes wired from the generator operate on the particle primitive. |
Particles are in point groups called streams. It is much easier to create a node branch that operates on a subset of all particles. |
Accumulated |
Accumulates |
Used |
While the solver will respect |
Used the Collect node to merge primitives from different generators |
Uses the standard Merge DOP to merge particle streams. |
Used display flag to set output of simulation |
Must re-wire the network to change output. |
Used local variables such as |
Uses VEX expressions for faster processing and multithreaded cooking. |
Implemented mostly in C++ |
Implemented using VOPs and SOPs, allowing you to examine the source networks and derive new behavior. |
Cooking networks of C++ nodes with few particles was very fast |
Uses just-in-time compilation of VOPs and cooking of node networks, so basic overhead is higher. However, if you use per-particle expressions, the new VEX expressions are much faster than the old HScript expressions, and multithreading makes high particle simulations faster. |
Used Guide node flag to show guides in the viewer (for example, to visualize force direction) |
DOPs have a Hidden node flag that hides any visible guides. Guides and visualization are controlled by node parameters. |
Applied drag as acceleration opposite the velocity. This is unstable with high drag values and can oscillate near zero. |
Drag is proportional to the square of the velocity allowing for faster squishing of extreme velocities while preserving low speed motion. Drag is applied implicitly (the drag equation is directly solved), avoiding overshoot even with very high drag values. The |
Used collision nodes to handle both collision detection and response. Handling collision response in a node flow was awkward. |
A particle node in the chain applies properties specifying collision behavior. The particle solver node responds to DOP collisions according to the properties. |
The integer state
attribute was a "bit field" of collision properties. You had to use bitwise operations to tease out the values packed in the integer. The hidden backtrack
attribute tracked where particles came from.
Used a 2-float vector called |
Uses two scalar attributes called |
Other
-
Dynamic particles have no equivalent of the old "particle event" system. Events were a workaround for the early restriction that particle systems could only exist in the
/part
network. -
The Creep POP functionality has been replaced with a POP VOP or POP Wrangle, and use of the
posprim
/pospath
/posuv
attributes and theprimuv()
function.