On this page

Workflow improvements

  • In previous versions, render layers were often defined by hiding and revealing these prims. Another method was to control visibility with the Render Geometry Settings LOP’s Shading ▸ Render Visibility parameter or the Render Pass LOP.

    With the new workflow you can point the RenderPass LOP’s Render Source parameter directly to a RenderSettings prim. The USD Render ROP, on the other hand, points to the RenderPass prim that defines object visibility. This workflow lets you render multiple layers in one shot just by specifying different RenderPass prims.

    When you call the Karma (Setup) tool, it will now add a Render Pass LOP to the network with a complete prim setup.

  • Many parameters on LOP nodes provide a utility dropdown control menu introduced through or icons. When you open the menu, you can find a new entry. This option ignores animated values and uses the attribute’s default value instead.

  • Collections in the Scene Graph Details and parameter menus are now searched for using the collections path preference rather than a hardcoded /collections.

  • There’s now a new USD Create Subcomponent tool recipe.

  • The new XformCommonAPI convention stores transforms exploded and with pivots, instead of a 4 x 4 matrix. All nodes with the ability to transform primitives now have this option turned on by default. When you import scenes from previous Houdini versions, the XformCommonAPI will not be applied automatically to maintain backward compatibility.

  • The USD ROP now writes sidecar geometry files when you save networks with op: references and APEX. For op:, you have to reference geometry manually, for example an object that drives displacement in a VEX shader network. For APEX, the relevant animation and rigging information is directly read from attributes on HoudiniApexScene or HoudiniApexCharacterAPI.

    The USD ROP is now also capable of exporting of COP-generated UDIMs.

  • Viewport homing with H now works on selected point instances.

  • The Context Options Editor was completely redesigned. When you add the editor to an existing pane as a new tab, you can find the editor now under New Pane Tab Type ▸ Context Options Editor.

  • Many round-tripping enhancements to the SOP Import LOP.

  • Stability and performance improvements to the Light Linker LOP, Light Mixer LOP, and Material Linker LOP with large scenes.

New nodes

  • The new Relocate LOP authors relocate source-target mappings to the active layer. The node uses the relocate arc that creates a “tombstone” at the source location. When you click the Scene Graph Tree’s Primitive visibility in scene graph button, you can make tombstoned locations visible. Tombstoned locations can’t be populated again with primitives.

  • Added a new Plane LOP for creating and editing UsdGeomPlane prims.

  • The Configure Guide Deform LOP tags groom primitives with the HairDeform procedural API, configuring how they deform at render time.

  • The new USD SOP Tools were designed to facilitate the creation of USD structures in a SOP context:

Beta nodes

Houdini provides tools that allow you to rig and animate characters and props in the context of a USD stage. Note that the nodes and features of this tool set are still under development. The current functionality is unfinished and subject to change, and may have thin or no documentation. Please bear this in mind when using it.

Note

For detailed information about the new workflow, please read the Animating in LOPs page.

  • The APEX Animate LOP edits the animation on an APEX scene.

  • The APEX SOP Rig Builder authors APEX rigs and binds them to USD primitives.

  • The Bake APEX Scene LOP bakes animation from APEX scenes into point positions and transforms.

  • The Configure APEX Rig LOP configures and attaches simple APEX rigs to USD primitives.

  • The SOP Import APEX Scene LOP imports an APEX scene or character from a SOP network into the USD scene graph.

  • A Hydra scene index plugin provides fast evaluation and deformation of APEX characters.

  • USD schemas for binding primitives to inputs and outputs of APEX rigs.

Node improvements

  • Several node names were adjusted to reflect that they apply to UsdSkel characters:

    • USD Character Import SOPUsdSkel Character Import SOP

    • USD Animation Import SOPUsdSkel Animation Import SOP

    • USD Skin Import SOPUsdSkel Skin Import SOP

    • SOP Character Import LOPSOP Import UsdSkel Character LOP

    • Bake Skinning LOPBake UsdSkel Skinning LOP

  • The Edit LOP now supports physics on individual point instances. Additionally, it is now aware of and can edit the pivots of specific prims using the XformCommonAPI.

  • The Edit Material Network LOP now uses the position stored in the USD shader primitives to lay out the loaded shader VOP nodes.

  • A new Use Fast Bounds option on the Match Size LOP uses USD bounds for computations. This is less accurate, but much faster. A new Justify parameter allows scaling only around the prims' local bounding box center.

  • The SOP Import LOP now supports a usdprototypespath attribute on packed primitives. The attribute lets you specify a custom location to place prototypes under when importing as native instances.

  • The SOP Import LOP now allows the usdconfigpackedprims attribute to be a primitive attribute to vary the import mode per packed prim.

  • On the For Each LOP you can now find a Merge Load Masks from Iterations option to create the load masks for the output stage.

  • The Light LOP UI was altered to make clear that the barn door parameters on the node’s Shaping tab are Houdini-specific.

  • New options on the Geometry Color LOP for random variation based on a color ramp, and separate red, green, and blue channels for RGB colors.

  • The Fetch LOP has new Output, Perform Layer Break, and Remove Context Blocks. The Fetch LOP can now act like a Begin Context Option Block LOP node, removing entries in the context option block stack, and applying a layer break. It can also specify which output of the source LOP node to fetch.

  • Viewport-specific parameters of the Camera LOP are now grouped under the new Viewport tab.

  • The Agent SOP’s USD importer, and the USD Animation Import SOP, now include blendshape channels from skinned primitives with blendshapes, in addition to blendshape channels defined on the SkelAnimation primitive. This allows those blendshape channels to be available for manipulation even if the SkelAnimation prim didn’t have animation for them.

  • The Houdini Procedural: RBD LOP now has a Motion Blur dropdown menu. The Geometry Blur also provides options for how to sample the points primitive’s time varying attributes.

  • The Houdini Procedural: Hair now supports time sample generation for subframe-sampled motion blur through the MotionAPI schema. You can find the new Subframe Samples parameter on the procedural’s Primitive Properties tab. A value of 2 and higher is required for deformation-based motion blur.

  • The SOP Import LOP now translates Gaussian splats to USD’s ParticleField3DGaussianSplat primitive type.

  • There’s now a ML Train GSplats from Karma recipe available in Solaris.

  • The Reference LOP now tries to open the provided File Path parameter as a file on disk even if it contains wildcard characters. If it is able to open this file, it is treated as a single file path rather than a pattern.

  • The Configure Property LOP can now set elementSize metadata on attributes that are not primvars.

  • The SOP Crowd Import LOP now has Cache Current Frame Only caching mode.

Rendering

  • When you execute the Karma (Setup) tool, you’ll now also create a Render Pass LOP that uses the upstream Karma Render Settings LOP as the render source.

  • Houdini clone processes are now able to work with Storm-like renderers (immediate mode rendering with OpenGL). Note that Storm still does not appear in the list of available clone renderers, but you can use custom render delegates with similar designs with clones.

  • Multiple improvements to the Live Render LOP:

    • The node now has Pause Render and Resume Render buttons

    • A new badge on the node’s icon indicates the Pause Render state

    • The new pause/resume features are also available when you right-click the thumbnail of the current render in the Render Gallery

    • The Render Gallery’s render view no has a progress bar

    • As with other modes, the Live Render LOP is now capable of capturing the current LOP network

    • Support for click-to-focus on Live Render LOP renders

  • Added a Render Gallery setting to control whether the LOP Network is captured when taking a snapshot. The default remains true, keeping the pre-control behavior.

  • There’s a new Hydra Generative Procedurals toggle in the Display options toolbar when you click the Control visibility of Primitives button. By default, the toggle is on for every delegate except Houdini VK (Vulkan doesn’t resolve procedurals). You can also turn off procedurals in husk via the --disable-hydra-generative-procedurals flag

Environment variables

The HOUDINI_SCENEGRAPHTREE_ALPHASORT environment variable controls whether to sort the scene graph tree alphabetically (1, the default), or to use the prim order encoded in the USD data.

The HOUDINI_SOPIMPORT_XFORMCOMMONAPI environment variable controls whether the BGEO file format plugin authors prim transforms using the XformCommonAPI if not explicitly specified in the file format arguments or the BGEO detail attributes. Set to 1 by default.

Scattering and instancing

  • The Layout LOP is now named Paint Instances LOP. The node has undergone a complete review with bug fixing and UI improvements.

  • The new Scatter Instances LOP lets you create, scatter, manipulate, and orient instances directly at render time. You can find more information on Scatter instances.

  • The new PointInstancer LOP can create and edit point instances at the same time. Inside the node, there’s a USD PointInstancer Import SOP that lets you import points from other PointInstancer nodes, for example to transform or modify them in different ways.

  • The Instancer LOP was renamed to Copy to Points LOP and has an improved UI with reorganized prototype-related parameters.

Other improvements

  • Houdini now ships with an example code for the USD_HoudiniPathMapArResolver asset resolver. This tool lets you map paths between Linux and Windows using the $HOUDINI_PATHMAP environment variable. You can find the code in $HT/samples/USD/USD_HoudiniPathMapArResolver. For more information, please also read the pathmap HScript command page.

  • Loading Houdini geometry from bgeo files or from SOPs will now generate USD transforms using the UsdGeomXformCommonAPI standard by default. This change will affect existing .hip files as well. Although this results in different USD data, it is equivalent to the old data, and so should result in no visual changes. If preserving the old default Xforms is important, setting HOUDINI_SOPIMPORT_XFORMCOMMONAPI to 0 will return to authoring a single matrix4 transform for all prims.

  • Primitive patterns are now able to select primitives and instances from a point instancer with a regular pattern. This method requires that the used node can deal with either prims or point instances, for example the Prune LOP.

    Auto-collections also support point instancers now.

  • Primitive patterns have a new %timevarying auto-collection option that considers all primitives with at least one time-varying attribute value.

  • Export speed improvements. Layers above the layer break are now stripped off during the save operation with the USD ROP without altering the stage and avoiding the re-composition.

  • Data from Value Clip will now display in the Time Samples tab of the Scene Graph Details.

  • When Display resolved paths is turned off, the Scene Graph Layers pane now shows the raw identifier from the originating layer, rather than the “intermediate” path which evaluates stage variables and turns relative paths into full paths.

  • With Python, you can now add custom columns to the Scene Graph Tree.

  • Improved UX for visualizing shader patterns and signals. Instead of viewport-overrides, Material Library now adds a new hvisualize output to the material. Hydra is also more robust detecting when the visualization node is connected and disconnected.

What’s new in Houdini 22