|On this page||
GGX and PBR in the viewport. More to come in future releases.
The viewport now displays mitred joints on open curves with thickness.
In "Normal" lighting quality, environment lights now provide an ambient lighting factor.
Improved hair shading in the viewport. Hair shading is now on by default on the Fur object. Hair thickness, subdivision curves, and hair shadows display properly in the viewport’s high quality display mode.
High quality lighting mode again supports and unlimited number of lights.
Normal quality lighting will now display lighting from an environment light with an environment map. This is currently limited to one light. The Roughness parameter controls the blurriness of the map.
Default Phong/Lambert lighting models in the viewport are now more energy preserving. Specular highlights will look more subtle overall.
The viewport can now display UDIM textures. If an object’s OGL Texture parameter has
%(UDIM)2d in the string, it will be treated as a UDIM texture. For example, instead of
/path/to/texture1001.exr, you would use
The viewport can also display Mari-style tiled textures. You can use
New options in the display options to highlight geometry/UV boundaries, and highlight overlapping UVs.
The viewport can now display world-space normal maps.
Volume visualizer displays a color map or vectors showing the values along a slice of a volume.
Tag visualizer displays a label pointing to the target. You can set the label to be visible even when the target is outside the view. This is useful for keeping track of light names.
When a visualizer is attached to a node, a Visualizers tab appears in the node’s parameters containing the visualizer controls.
You can hover over a geometry node, dynamics node, or VOP output and press X to attach a visualization node to it. Pressing X on something else in the network moves the visualization node. This is a quick way to move through the network inspecting geometry.
Added a menu of ramp presets to the color visualizer interface.
Added options to the marker visualizer:
Color vectors and vector trails by vector values, vector directions, or a second attribute (for example
Cd). This supports converting multi-component values, and mapping onto a ramp.
Color point trails by vector values, direction, or an attribute.
Normalized vector lengths.
New Unit length parameter makes it easier to distinguish between per-frame and per-second unit vectors.
In the axes visualization style, you can now enter a space-separated list of three vector attribute names in the Attribute field. The three barbs of the axis will align to the three vectors. Other styles ignore all but the first name.
The default attribute type is now "Auto", which guesses the attribute type from the name. This means you only have to change it if you have two different types of attribute with the same name.
A higher-priority visualizers will no longer override other visualizers (or
Cd) if the attribute it’s visualizing does not exist.
Network and parameters
Objects now have buttons in the parameter editor to copy the position, rotation, scale, and pivot from another object in the viewport.
There are now
@attribute alternatives to all local variables. For example, you can use
@P.y instead of
@Cd.r to get the red component, and
@name to get the name string.
@Frame is now a floating point value, to match the VEX equivalent.
@Time now work properly in nodes that don’t have local variables.
In the ⇥ Tab menu you can press ⇧ Shift + Enter on the highlighted node to automatically place it and append it to the previously selected node.
You can now create "black box" assets that can be freely distributed and used without a license, but cannot be inspected or modified. Select an instance of an asset and choose Assets ▸ Create black-boxed asset.
Show on connect
The Disable when and Hide when syntax now supports the pseudo-functions
hasinput(n) to allow hiding/disabling depending on whether an input is wired.
Houdini now saves asset libraries with a
.hda extension instead of
.otl. Houdini still recognizes and loads files with the old extension.
HOUDINI_USE_OTL_AS_DEFAULT_HDA_EXT environment variable will restore the old
.otl extension. This is a temporary stop-gap for studios that have infrastructure that relies on the old extension.)
New parameter type
This version of Houdini introduces initial support for a "data" parameter type you can use to store binary data in a node. For example, the Curve Groom SOP uses this to store stroke data.
HDK plugins can now register mouse hooks in the viewport.
Other changes and improvements
You can now select multiple items (in the same network) in the tree view.
By default, rotation ring handles that are straight on to the view are no longer drawn. You can turn off Hide rotate handle rings parallel to the view direction in the Handles preferences to disable this.
You can now use numeric ranges and attribute expressions (such as
@area>0.1) in the group mask field.
Houdini will now display a warning if you load a scene file containing deprecated nodes (nodes that we intend to remove from Houdini in a future version). You can turn this off in the "Save and Load" preferences.
You can now use
_ as a number separator in Houdini expressions, for example
rand(1_000_000), to make long numbers more readable.
The version number is now part of the application icon.
A new environment variable
$HOUDINI_VERSION contains the full version number (for example
The viewport no longer displays environment maps as background images for light types other than Environment.
hgpuinfo utility prints information about OpenGL and OpenCL support on the current machine. You can also test for feature support using the exit code.
The Cache SOP generates a warning if you try to cache packed primitives in point mode.
Re-enabled checks for stereo framebuffer support and quad buffer stereo mode.
Houdini now assumes parameters starting with
stdswitcher are auto-generated folder parameters, so it doesn’t consider their deletion or change as changes to the asset.
Distance lights in the viewport now properly ignore attenuation.
Instanced geometry that’s animated at the geometry level now updates properly in the viewport.
Adaptive subdivision surfaces now look correct in "wireframe ghost" and "hidden line invisible" display modes.
Dragging in the viewport now works with distance handles.
The Attribute class option for visualizers now defaults to "Auto", which figures out the type of the attribute based on the name, so you shouldn’t have to change it unless you have two different types of attributes (for example point and primitive) with the same name.
HUD sliders now work in the UV viewport.
The viewport now returns to the previous state after the user uses the reselect button on a group parameter.
Fixed display of multiple selections (for example, where a tool asks for a set of "source" primitives and then a set of "destination" primitives) when using modeling tools in the viewport.
The "Lock camera/light to view" button to the right of the viewport now affects all linked viewports with a camera.
Point trails now work on packed fragments.
Fixed display of bump maps with XY deltas.
Improved startup times by caching information about plugins.
The Assets menu now lists assets from read-only libraries.
The level of detail display option is now saved in the