Houdini 13.0 Nodes

interface version 1

Performs various topology-related (or other specific) queries and stores the results in point attributes.

This operator can generate point attributes and/or point groups, based on the points' topological properties. There’s a built-in visualizer to quickly display the results.

  • Detecting coincident points (the un-fused points at the tube caps' edges). The integrated visualizer is enabled to display the results.

Use cases include:

  • Finding and visualizing coincident points (“un-Fused”, see image above)

  • Counting topological neighbours (and group endpoints for curves)

  • Visualizing points on geometry borders (to detect possible “geometry leaks”)

It can also generate other miscellaneous “convenience” attributes (e.g. relative age for particles).

Description

Various queries are available:

Coincident Point Count

Finds out how many points occupy the same spatial coordinate. (Can be useful to detect un-Fused points.) Optionally, multiple coincident points can be grouped. The visualization mode can be used to quickly inspect geometry for un-fused points.

Neighbour Count

Determines the number of topological neighbours for each point (ie. connected with an edge). Optionally, points with small neighbour count (e.g. curve endpoints or “lonely” points) can be grouped.

Borders

For each geometry point, it determines if it is on a geometry boundary, and stores the information in an attribute and/or group(s).

Indices & Attributes (point, vertex, etc.)

This section has options for creating various convenience attributes for several geometry classes (regular geometry, particles, L-systems).

Geometry

Stores point or vertex indices (vertex counts, etc.) as per-point attribute(s). The vertex index is relative to the primitive the point belongs to.

Note

Most vertex- and primitive-related values are usually ambiguous on polyhedra, since most points belong to more than one primitive. These values make more sense on curves, or row/column based geometry (e.g. NURBS or meshes).

Particles, L-Systems

Various per-point attributes can be created (such as relative age for particles/L-systems, etc.)

  • For each point, the number of topological neighbours (i.e. connected with an edge) is stored in an attribute (with the visualizer displaying 3 neighbours with black, 7 with bright yellow.)

Parameters

Visualization

Enable visualization of various topological properties. If enabled, a Visualization tab will appear in all parameter sections that support it. (All visualizations are layered on top of each other in an additive fashion.)

Disabled

No visualization.

Colors

A specified value range is mapped to a color ramp, then displayed as per-point colors.

Colors + Points

A particle system is added to the geometry points to make them visually more distinctive.

Colors, Points Only

All geometry but the point particles will be removed (all topology-related calculations will still be correct).

Base Color

The default (base) color for the various visualization layers.

If the input geometry already has a color attribute, this parameter will be ignored. (Use the “set” switch on the right to always force-override with the base color.)

Coincident Points

Points are considered coincident if they are closer than a specified minimum distance (tolerance).

Count Coincident Points

Enable counting of coincident points.

Search Radius

Distance tolerance for coincident point detection. Points closer than this distance are considered coincident.

Note

Using larger values for this radius can emulate behaviour similar to the nearest-neighbour calculation of the Scatter SOP.

Max Points

The maximum number of points to be considered as coincident within the search radius.

Note

This limit applies even if there are more points occupying the same location. (In that case try increasing this value.)

Attribute, Variable

Attribute to store the point count. (All coincident points will have the same count value.)

Group

Name of a point group to be created, based on a point count criterion (see below).

Grouping Criterion
Equal or Greater

Group points which have the given number of coincidents, or more.

Equal

Group points that have exactly the same coincidents as specified.

Equal or Less

Group points which have the given number of coincidents, or less.

Neighbours

Topological neighbour counting. Points are considered neighbours if they are connected through a single edge.

Count Neighbours

Enable counting of neighbours for each point.

For description of parameters see the Coincident Points section above.

Borders

Determines if a point is on a geometry boundary or border.

Detect Border Points

Enable geometry boundary point detection.

Attribute, Variable

Attribute to store the on-boundary status.

Values (Border, Inside)

Attribute values for border and inside status, accordingly.

Border Group, Inside Group

If enabled, points are added to the group(s) where they belong.

Indices & Attributes

Storing of various index counts (or other convenience values) as per-point attributes. (Note that most vertex-related indices are make best sense for curves or row/column based surfaces – e.g. curves, etc.)

Geometry

Extract various geomety-related indices.

Point Index

Store the point index of each point. (This is slightly analogous to the origin attribute in POP networks.)

Point Idx [0..1]

Store point indices in a percentage-type format (in the range of [0..1]).

Vertex Index

Store vertex indices. (Note that in order to get proper results for a polymesh, its points have to be unFused first.)

Vertex Idx [0..1]

Store vertex indices, percentage-style (in the range [0..1]). (Note that for curves this is actually very similar to uniform parametrization.)

Vertices on Prim

Store the vertex count of the related primitive, for each point.

Primitive Index

Store the index of the primitive the given points belongs to.

Particles

Extract various particle-related convenience values.

Age [0..1]

Store per-particle normalized age as a new attribute. (Same as the $LIFE local variable.)

Current Age, Life Span

The values of age and life VEX variables returned as attributes.

Velocity Length

The magnitudes of per-point velocity vectors v.

L-Systems

Various L-system-related convenience attributes.

Generation [0..1]

Store the normalized value of the L-system gen attribute as a new attribute. (Requires the gen per-point attribute to be present.)

(The gen attribute stores the L-system generation depth, but it has the same value for each point in the same L-system primitive.)

Age [0..1]

Store the normalized value of the L-system lage attribute as a new attribute. (Requires the lage per-point attribute to be present.)

(The lage attribute is similar to gen, but it increases within the same L-system primitive as well – it act as a parametrization of some sort.)

Remove Attribs

After generating the new attribute(s), this convenience field allows old attributes to be deleted (if they're not needed any further).

Todo

  • Borders' visualization now works only if the attribute is generated

  • Option for outputting integers or floats where ints are applicable by default

  • ...

Release Notes

interface version 1

2014-10-18
  • Added “Velocity Length” particle option (magnitude of per-point v attribute)

2014-09-15
  • Prefixed all internal vopsop params so they wouldn’t collide with regular geometry attributes (e.g. “radius”, etc.)

  • Added Point Group parameter for Coincident Points and Neighbours tabs

2014-08-08
  • Added “Borders” tab (to detect geometry border edge points)

  • Added display gamma

  • “Base Color” can now be switched off

  • Minor UI cleanups

2013-10-01
  • Changed all visualization ramps to HSV mode (it’s usually much more useful in visualizations).

2013-08-21
  • Added support for the following attributes (“life” decoupling) —

    • Particle current age, life span

2013-04-19
  • Renamed some parameters (“Point Index”, “Vertex Index”, coi_grp_num – this should bump to interface v2)

  • Added default expressions for all variable fields

  • Added descriptive parm (displays extra info in the network view)

2013-04-07
  • Now deletes detail attributes as well (optional post-operation attribute cleanup).

2013-02-15
  • Added support for the following attributes —

    • Particle normalized age

    • L-system normalized generation and age

  • Added post operation: remove a list of specified attributes

  • Improved performance when vertex-related indices are not queried.

older versions

Version 0.0.3
  • Added visualization modes for coincidents and neighbours.

  • Help card enhancements.

Version 0.0.2

Interfacelift; better Help card.

Version 0.0.1

Initial release.