Houdini 13.0 Nodes

interface version 2

Performs common operations between per-point vector attributes on the input geometry.

The most common vector-related operations encapsulated in one node. One of the most frequently used operators.

  • A very useful technique: generating per-point velocity vectors using the difference between the original geometry and its transformed version (by subtracting point positions from each other). The resulting vectors and heat map -- representing vector lengths -- are displayed using an Attr Visualize qL SOP.

Note

Although this node might seem a bit monolithic, it encapsulates the most frequently required vector-related operations (and it does that within a single VOP SOP, so it is fast).

If the second input is unconnected, it assumes the geometry of the first input.

Parameters

Point Group

The group of points affected.

Operation

The main vector operation to be performed. The following operations are available.

Add

Vector addition. (Output components will be the sum of respective A/B input components.)

Substract (A-B), (B-A)

Substraction. Output components will be set the difference between respective A/B input components.

Mix

The A and B vector individual component values will be mixed using a blend value (or per-point attribute).

Cross Product (AxB), (BxA)

The output vector will be perpendicular to the plane defined by the two input vectors.

Multiply (per-component)

Output components will be the respective A/B input components, multiplied.

Pass 1st/2nd Input (A/B)

Output the first (or the second) vector input.

All pre- and post-processing operations still apply (including the optional dot product and angle calculations.)

Make Perpendicular

The first vector direction will be adjusted to be perpendicular with the second vector (while remaining in the same plane, defined by the two vectors).

(Equivalent of performing an AxB then a BxA cross products.)

Reflect (A, normal B)

Calculate reflection direction vectors, using input A as the incoming ray direction, and input B as surface normal.

Input
Vector A/B

The two tabs represent separate settings for each of the two sets of vectors. All these settings are applied to the vectors (in order) before the main operation.

Pre-Compute Normal

Precompute normals for the input geometry.

Vector

Type of vector (geometry attribute or constant).

Attribute Name

The name of the vector attribute. (If the second input is not connected the attribute is read from the first input.)

Constant

Vector value for the Constant type.

Normalize

Normalize vector value. (Applies to the constant value as well.)

Scale with

Scale the vector with the specified (float) attribute.

Mix Settings

These settings are used in Mix mode only.

Blend Value

A constant mixing value.

Blend Attribute

A per-point float attribute to use as mix value.

Output
Normalize Output

Applies length normalization right after the main operation.

Length Multiplier

A post-multiplier value for the output vector.

Note

Use this value to convert between regular (per-frame) and velocity (per-second) vectors.

Velocity (v) for instance is measured as distance per second – this means a regular unit-length vector should be multiplied with $FPS in order to apply this conversion.

There is a small preset menu provided for Multiply for converting between unit-length and second-based vector lengths.

Scale

An additional length scale factor for the output vector.

Scale with

Scale the output vector with the specified (float) per-point attribute.

Invert Result

Negate the output vector (so it will point to the opposite direction).

Output Attributes

Names and toggles of various attributes to output.

Vector

The target attribute of the vector operation result.

Length

The length of the result vector. (This vector is not normalized–the Scale factor applies, though.)

* Dot Product

Dot product of the two input vectors.

* Angle

Angle between the two input vectors.

Angle In Degrees

Output angle in degrees instead of radians.

Note

* These are calculated between the vectors for all main operations, including Pass 1st and 2nd Input.

Release Notes

interface version 2

2014-03-22
  • Quick fix: position (P) attribute couldn’t be specified as output (fixed).

2014-03-10
  • interface version 2:

    • parameter renames for more consistency

    • rebuilt internally (as a single wrangler node)

    • upcoming possible major features (vexpressions)

interface version 1

2014-01-31
  • Minor descriptive parm changes.

2013-07-09
  • Added optional scaling of output with a specified per-point (float) attribute.

2013-04-19
  • Improvements to descriptive parm.

2013-04-17
  • Added “descriptive parm” (shows mode in network view). Experimental with minor update problems.

2013-04-09
  • Added 'Reflect (A, normal B)' mode.

2012-11-18
  • Added 'Make Perpendicular' mode.

2012-11-16
  • Added Multiply (per-component) mode.

  • Added a post-multiply parameter for more convenient conversion between regular and per-second based (velocity) vectors.

  • Some UI + help card improvements.

older versions

Version 0.1.1
  • Added options for scaling both input vectors with a scalar (float) attribute before main operation.

  • Some UI fixes, consolidations, cosmetics.

  • Help card revision.

Version 0.1.1

Interface updated. One thread per processor is now the default.

Version 0.1.0

Initial release.