Houdini 13.0 Nodes

interface version 1

Generate non-flipping tangent/normal/up vectors for all points on (polygonal) curves.

This SOP generates reference frames (a set of three vectors that defines a local coordinate system) for all curve points.

  • An example curve, with reference frame vectors generated (and displayed as guide geometry).

The algorithm generates each reference frame incrementally from the previous one to avoid flipping. This can be very useful where curves with 'on-curve orientation' information is needed (such as motion paths or hair curves).

The method is based on the paper “Calculation of Reference Frames along a Space Curve” by Jules Bloomenthal (Graphics Gems, vol. 1).

Tip

Although there won’t be sudden “flips” in vector directions along the curve, the algorithm can be sensitive about the initial up vector direction, especially if the curve is arbitrarily deformed.

To avoid possible flipping of vectors on the entire curve, generate an up vector on the first curve point that has no sudden changes during animation, and use the “Up Vector from First Curve Point” option for Up Vector Mode.

(This only applies for animated/deformed curves. It also doesn’t matter in case only the tangent vectors are used.)

Parameters

Mode

Method of generating the vectors for the input curve(s).

Use UV coordinates

The algorithm will derive on-curve 3d points based on curve parametrization (i.e. UV coordinates). Valid UV texture mapping should be present on all curves to be processed.

Assume linear curves

The algorithm will assume curve(s) with points that lie on the curve, and evenly distributed. (Only linear curves can match both criteria.)

This mode tends to give better results. Its preferred inputs are resampled curves.

UV Attribute

A per-point UV attribute to build the reference frames from (only the U parameter is used). This attribute can be generated with an UV Texture SOP.

Up Vector Mode

The mode for determining the first up vector on each curve. It can either be a constant, or the up vector value of the first vertex can be used (if present).

Make sure you read the TIP above.

Up Vector

Vector value for the 'Constant' up vector mode.

Outputs (Reference Frame)
Tangent

Name of the output tangent attribute (per-point vector).

Normal

Name of the output normal (bi-tangent) attribute (per-point vector).

Up

Name of the output up vector attribute (per-point vector).

Outputs (Other)
Segment Length

The length of the current curve “segment” (the distance between the current and the previous point). It is 0 for the first point in each curve.

Curve Length

The length of the curve, from the beginning up to the current point (as a per-point float attribute).

Show Guide

Display the generated reference frame vectors as guide geometry.

To Do

  • The group parameter does not work

Release Notes

interface version 1

2014-08-29

First version. Replaces qLib::curverefs_ql::1.