Houdini 17.0 Nodes VOP nodes

Switch VOP node

Switches between network branches based on the value of an input.

On this page

This node’s first input is an integer that specifies which input to pass through to the node’s output. The numbering starts at 0, even though the input labels start at input1 (for example, if the value of the first input is 0, the node will output the value of input1).

The inputs can be of any type, but they must all be of the same type.

You can use this node in front of a Collect node to switch between shader types. When switching between shader types (in front of a Collect node), only the code for the currently selected branch is generated.

Warning

When switching between regular inputs (that is, not between output nodes and a Collect node), all inputs are evaluated (cooked). For networks with long branches feeding into a Switch, this can be very inefficient, so you should only use Switch with short branches. You can use the If subnetwork to switch between big network chunks efficiently.

Inputs

Switcher Index

This integer value selects the input value to pass through to this node’s output. The inputs are numbered starting at 0 even though the inputs are labeled starting with input1, so a value of 0 will select input1, a value of 1 will select input2, and so on.

You will usually connect this input to a Compare node, or a logic node such as the And or Or node.

Input Number N

You can connect up to 64 inputs. New inputs are added as you connect them.

Outputs

Chosen Value

This output will be of the same type as all the inputs.

Examples

The following examples include this node.

Street Crowd Example Example for Crowd Solver dynamics node

Crowd example showing a street setup with two agent groups

The setup creates two groups of agents. The yellow agents are zombies which follow a path of the street. The blue agents are living pedestrians that wander around until they come into proximity of the zombies and then they swtich into a running state.

Triggers to change agent states are setup in the crowd_sim dopnet. The zombies group uses proximity to the stoplights and the color of the light to transition into a standing state when lights are red. The living group transition into a running state when they get close to the zombie agents.

Note

The animation clips need to be baked out before playing the scene. This should happen automatically if example is created from Crowds shelf. Otherwise save scene file to a location of your choice and click Render on '/obj/bake_cycles' ropnet to write out the files. The default path for the files is ${HIP}/agents.

FlipColumn Example for FLIP Solver dynamics node

This example demonstrates how a mixture of fluid colours can have their colour changed by a collision with a static object.

SpinningFlipCollision Example for FLIP Solver dynamics node

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.

PaintedGrog Example for Fluid Object dynamics node

This example creates a torus of paint which is dropped on the Grog character. The Grog character is then colored according to the paint that hits him. This also shows how to have additional color information tied to a fluid simulation.

CurveForce Example for POP Curve Force dynamics node

This example demonstrates the use of the POP Curve Force node to control the flow of a particle sim AND a flip fluid sim.

RampReference

This example demonstrates the use of ramps and referenced ramps which are animated over time.

FirePit Example for Material shader node

Note

No geometry is animated in this file. All animation is achieved by animating the textures

Flames are grids so that UV textures can easily be applied, they are then warped around a metaball using a magnet SOP. The flames are then assigned to either a yellow or blue Flames texture. The Flames' opacity mask wrap is set to Decal to prevent the texture from repeating and showing a single pixel ring at the top of the flame geometry. I'm also using a mask file named flameOpacMap.jpg to enhance the flames' shape at the top. The noise offset has been animated over $T with an greater emphasis on the Y axis so that the flames look like they are rising. This is the same reason the Noise jitter is larger for the Y axis as well.

The coals are spheres that have been copy stamped onto a deformed grid. Using Attribute Create surface nodes I am able to override and copy stamp the lava texture’s parameters at the SOP level so that local variables, such as $BBY, can be used to animate the texture. This way the texture’s crust and its crust values can be used only to form the tops of the coals. This reserves the lava aspect of the texture to be used on the bottoms of the coals. The lava intensity (Kd attribute) is then stamped and animated to create the look of embers on the bottom of coals glowing.

StyleDisplacement Example for Material shader node

This is an example file showing an object made up of two quads, one with a bump map, the other with true displacement. This object is duplicated, and the second copy uses a style sheet to reverse the material assignments on the two quads.

RandomMaterial Example for Attribute String Edit geometry node

This example demonstrates how to use the Attrib String Edit SOP to modify String primitive attributes and randomize the colours on a grid on a per-primitive basis.

FurTextureMap Example for Fur geometry node

This example demonstrates how to use a texturemap to color fur.

AlphaOmega Example for Points from Volume geometry node

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.

UnpackWithStyle Example for Unpack geometry node

This example demonstrates the Unpack SOPs ability to evaluate style sheet information while unpacking. Nested packed primitives are used to demonstrate partial unpacking while still preserving styling information. This example also demonstrates the use of a Python SOP to extract information from the per-primitive style sheets.

GroupPainted Example for Add Point to Group VOP node

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.

RampParameter Example for Parameter VOP node

This example shows how to control the particle colours using the temperature attributes from a pyro simulation using a Ramp Parameter VOP node.

See also

VOP nodes