Houdini Sink

SideFX Houdini #note/sink

Vectorize Images using Clusters

Vectorize pixel images using cluster points node

Viewer states, handles, HUDs

Creating custom HUD, transforming into camera space


Python States for Houdini TDs


H19 grouping behaviour change

Old: !group1 !group2 !group3 implicit AND operation is now OR in H19
New way: !{group1 group2 group3} more explicit AND

Pulling/sharpening point clouds

Attribute Blur set to Proximity mode will gather nearby points. It’s a brilliant trick.

Multiple textures per attribute

Using Style sheets or overrides

OGL pscale visualization

New pscale visualization feature in H19
Create a detail wrangle and type in i@gl_spherepoints = 1 - it creates a nice sphere primitive visualizer that seems to perform better than viewport discs or sprites in some cases!

Accessing attributes in parameters

Point attributes

// 'opinput:X' is the most legible and always works (the first input is input 0).
point('opinput:0', 'P', i@ptnum)
point('opinput:1', 'P', i@ptnum)

// The integer input number (the first input is 0). Some functions don't support this but it's easy to type.
point(0, 'P', i@ptnum)

// Absolute and relative paths to other nodes look like this.
point('op:/obj/geo1/OUT', 'P', i@ptnum)
point('op:../../OUT', 'P', i@ptnum)

Detail attributes, do not forget the last index is required

detail('op:../../OUT_pt', 'pcount', 0)

In string parameters

In string parameters (such as filenames, or the text created by the Font node), the text in the parameter is treated as text. Variables are expanded, but to use math or expression functions to generate part of the text you must place the expression within backticks. For example:

    frame`padzero(5, $F)`.pic

…giving you filenames such as frame00001.picframe00002.pic, and so on.