|On this page|
This node contains a VOP network (double-click the node in the network editor to go inside it) which can use SOP context VOPs to manipulate attributes on geometry points. (To define a SOP using a (textual) VEX program instead of a VOP network, use the VEX SOP instead.)
If there are no points in the geometry, the network will not run.
See creating a VEX surface node type for more information.
This node is useful for creating 'one-off' programs to manipulate geometry in a single surface network. To use a VOP network to define a reusable surface node type, see creating a VEX surface node type.
op:/ syntax only works to reference SOPs, not POPs.
If you enter the name of a point group in the first input geometry in this parameter, only the points in that group will be affected by the VOP network.
Number of threads
The number of separate threads to use to evaluate the points. The default is no threading.
Since Houdini evaluates the VOP network for each point in the input geometry, it can benefit greatly from threading on a multi-processor or multi-core machine.
Evaluation Node Path
VEX functions like
ch() usually evaluate with respect to this node.
Providing a path here can override where the path search starts
from. This is useful for embedding in a digital asset where you
would like the top level digital asset to be the search root.
ch() expressions are used when using inline code inside the VOP to call outside parameters. This has nothing to do with
ch() expressions you could put on the parameter UI of a VOP SOP.
The following examples include this node.
This example demonstrates two fluids with different densities and viscosities interacting with a solid object.
This scene shows how to create FLIP fluids based on the velocity of geometry by generating new particles from points scattered on the original geometry based on the velocity vectors. It also shows how to set up the original geometry to act as a collision object for the fluid.
This example demonstrates the use of gasParticleToField in Timeless mode.
This example simulates grass being pushed down by an RBD object. Fur Objects are used to represent the blades of grass and Wire Objects are used to simulate the motion. When a single Fur Object is used to represent the grass, neighbouring blades of grass will have similar motion. Additional objects with different stiffness values can be used to make the motion less uniform. When "Complex Mode" is enabled, two objects are used to represent the grass. The stiffness of each set of curves can be controlled by adjusting the "Angular Spring Constant" and "Linear Spring Constant" parameters on the corresponding Wire Objects.
This example demonstrates how to break wire constraints on a per point basis. The wire solver is set up to constrain certain points if it finds an attribute named 'pintoanimation'.
This is an advanced example of how to use the FindShortestPath SOP to prefer "central" paths, based on centraily measures computed using FindShortestPath and AttribWrangle. This helps avoid staying too close to walls where avoidable.
Turn on the Display Option > Optimization > Culling > Remove Backfaces to see inside the space more easily. Try visualizing the different centrality measures using the switch node. The same example without considering the centrality of the path is demonstrated in a side branch of the SOP network, in order to see the difference.
This example uses the foreach sop to apply the same SOP repeatedly to the geometry, accumulating the effect of each pass.
This example demonstrates how to paint scattered points onto the surface of your geometry with a set number of points per area.
This example demonstrates how to use a Points From Volume SOP to create a target goal for a flip simulation and make it fill a given piece of geometry.
This example shows how to use the Volume Analysis SOP to compute the gradient of a volume and displace the geometry’s points by the gradient.
This example shows how to use the Volume Surface SOP to surface an SDF using another volume to specify the triangle sizes.
This example shows how to use the Volume Surface SOP to surface an SDF using adaptive triangle sizes.
This example demonstrates how to take a painted attribute and build a point group from that attribute using the Add Point to Group VOP and the Create Point Group VOP.
Example of building point Groups in a VOP SOP where every other point is added to a new group.
Only point groups are supported in VOPs.
The VOPs you need to learn are:
Add Point To Group VOP, Create Point Group VOP, and Point In Group VOP
This example demonstrates the use of an Inline Code node that allows you to write VEX code that is put directly into your shader or operator definition.
This example shows how to control the particle colours using the temperature attributes from a pyro simulation using a Ramp Parameter VOP node.
This example shows how the pciterate vop can be used to average together points returned by pcopen. First, a point cloud is generated with a floating point "check" channel initialized to 1 inside a circle in the x-z plane. Then, the points are filtered in a shader by looping using the pciterate vop and averaging the value of the "check" channel. The point cloud used in the example is stored inside the asset as points.pc.