Skip to content

Latest commit

 

History

82 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

houdini_hda_collection

Houdini Digital Assets Collection


SOP Nodes

grid_cutter (SOP: Grid Cutter)

grid cutter node grid cutter example
  • Auto Align: Aligns the face to the X/Z plane before cutting. (Useful when using grid_cutter in a For-Each Primitive loop.) auto align

  • Force Cut Long Side: Cuts the longer side at each iteration. force cut long side

  • Half Ratio: How close each cut is to the halfway point.

    half ratio 05 half ratio 1
    Half Ratio: 0.5 Half Ratio: 1
  • Min Size: Limits the size of the smallest piece.

line_cracker (SOP: Line Cracker)

Fractures based on polyline projection (X/Z plane).

line creacker node line crack example

Input 1: Ground plane (does not need to be flat)
Input 2: Polyline, as a single primitive.
Output: Fractured polygons with attributes.

close line example open line example
Close Line Open Line

The line needs to bend somewhere. A perfectly straight polyline has no interior detail to work from and passes the ground through uncracked.

  • Iterations: Increase to better match the input line. (May not be a perfect match.)
  • Iteration Threshold: Avoids extremely small pieces.
  • Clean Zero Plane: Discards pieces that come out flat, judged from each piece's bounding box. On ground that is itself flat every piece qualifies, so the output ends up empty.
  • Clean Threshold: The area below which a piece counts as flat, compared against the smallest face of its bounding box.

matrix_deformer (SOP: Matrix Deformer)

Deforms geometry using a matrix derived from reference geometry.

Input 1: Geometry to deform
Input 2: Rest geometry
Input 3: Deformer geometry

sop_check_sequence_files_status (SOP: Check Sequence Files Status)

Visualizes sequence file status using Houdini point data — showing file size and modification time.

Non-existent files appear in red and are added to the non_exist point group. Point attributes include: size, mod_time, frame, file_path, exists. Point groups: size, time.

  • Files: Sequence files to visualize.
  • Start/End: Frame range.
  • Preview Length: Range of generated points along the X-axis.
  • Preview Height: Range of generated points along the Y-axis.
  • Font Size: Guide text size.

sop_fetch_pointinstancer_points (SOP: Fetch PointInstancer Points)

Fetches point data from a USD PointInstancer primitive into SOP geometry.

  • LOP Path: Path to the LOP node containing the stage.
  • Primitives: USD PointInstancer primitive to fetch. Must resolve to a single instancer.

sop_smooth_polyline (SOP: Smooth Polyline)

Smooths polyline curves.

  • Bias: Smoothing bias (0–1).
  • Step: Number of smoothing iterations.

sop_USD_Stitch_Export (SOP: Usd Stitch Export)

Exports the incoming SOP geometry to a per-frame USD sequence and stitches it into a USD value clip, so a geometry cache can be referenced as a single animated asset. Save to Disk writes the per-frame files; Stitch Value Clip then stitches them.

  • Load from Disk: Read geometry back from the exported sequence instead of cooking the input.
  • Import Path Prefix: USD scope the geometry is imported under.
  • Base Name / Base Folder / Version: Output naming and location.
  • Files Frame Start/End/Inc: Frame range to export.
  • Save to Disk: Write the per-frame USD sequence.
  • Sync Version / Clip Version: Clip version, optionally independent of the export version.
  • Stitch Value Clip: Stitch the sequence into a value clip (validates the whole range first and lists every missing or unreadable frame).
  • Relative Asset Paths: Write clip asset paths relative to the stitched file instead of absolute.

thunder_builder (SOP: Thunder Builder)

Procedurally generates lightning bolt geometry from a polyline.

Input 1: Rest line
Input 2: Animated line to match (optional)

  • Match Tip: Snap the end of the bolt to the tip of the input line.
  • Match Animated: Follow the animated input line each frame.
  • Segments: Number of segments in the generated bolt.
  • Growthing: Growth amount (0–1).
  • Tail Attrib: Output a tail point attribute.
  • Main tab: Noise Type, Frequency, Offset, Fractal Type, Roughness, Bias Angle, Exponent, Bias Along Curve ramp.
  • Branch tab: Branch probability, Max Branch count, Seed, Angle settings, Branch Step settings, Noise settings.

vector_intersect (SOP: Vector Intersect)

Finds intersection points between vectors.

  • Tolerance: Intersection tolerance distance.

LOP Nodes

lop_bbox_proxy_create (LOP: BBox Proxy Create)

Creates a bounding box proxy for specified primitives, replacing a given purpose (Default / Render / Proxy).

  • Primitives: USD primitives to create proxy for.
  • Original Purpose: The purpose to replace (Default / Render / Proxy).

lop_bind_materials_by_collection_name (LOP: Bind Materials By Collection Name)

Binds materials to primitives by matching collection names to material names.

  • Collections: Root path of collections.
  • Materials: Root path of materials.
  • Primitive: Target primitive to apply bindings to.

lop_build_simple_bgeo_clip (LOP: Build Simple bgeo Clip)

Builds USD value clips from a bgeo sequence. Requires a usdconfigure SOP to set the sample frame detail attribute on the bgeo files. Writing to disk also produces a <output>.manifest.usd sidecar next to the output, referenced by a relative path, so it must travel alongside the output file.

  • File: bgeo sequence path.
  • Template Frame: Frame used as the clip template.
  • Clip: Clip set name.
  • Files Frame Start/End: Frame range of the source bgeo files.
  • Scene Frame Start/End: Frame range in the USD scene.
  • Loop: Enable looping.
  • Primitive: Target USD primitive path (must match the prim path the bgeo imports to).
  • Output File: Path to write the clip USD file.
  • Save to Disk: Write the output USD file and generate the manifest sidecar.
  • Use Relative Paths: Write relative paths in the output USD.

lop_create_class_from_primtive (LOP: Create Class from Primitive)

Creates a USD class primitive and moves the hierarchy below a specified primitive into it.

  • Primitive: The primitive whose hierarchy will be placed in the class.
  • Class: Name for the new class primitive (specifier will be class).
  • New Name: Optionally rename the top-level prim when placed in the class.

lop_create_crowd_collections_by_agent_stage_material (LOP)

Creates USD collections based on the material binding names of the source agent mesh.

  • Collection: Collection prim path.
  • From Path
  • Replace Path

lop_create_mesh_rest_primvar_layer (LOP: Create Mesh Rest Primvar Layer)

Creates a USD layer that adds a rest primvar to mesh primitives.

  • Root Primitive: Root of the prim hierarchy to process.
  • Primvar Name: Name of the rest primvar (default: rest).

lop_custom_houdini_procedural (LOP: Custom Houdini Procedural)

Sets a specified primitive to use a Houdini Procedural for rendering.

WARNING: The render command must include --allowed-procedurals all unless only curves and points are used.

  • Graph File: The SOP-level graph file for the procedural.
  • Procedural Name: Name of the Houdini Procedural.
  • Procedural Primitive: The primitive to make procedural.
  • Inputs: Primitives to use as graph inputs.
  • Overrides: Override graph parameters and USD primitive properties.

lop_houdini_ocean_procedural_configure (LOP: Houdini Ocean Procedural Configure)

Configures a USD primitive that is already on the stage to render as a Houdini Ocean surface via the ocean rendering procedural, so the displaced surface (and optional foam/interior) is generated at render time from cached ocean spectrum data. Unlike SideFX's stock ocean setup, which imports a SOP mesh into Solaris, this node targets an existing primitive on the input stage as the ocean surface — that is the only difference.

WARNING: The render command must include --allowed-procedurals all for the ocean procedural to load.

  • Spectrum File / Mask File: Ocean spectrum and optional mask geometry caches.
  • Surface Mesh Primitive: Existing stage primitive used as the ocean surface.
  • Enable Interior / Interior Mesh Primitive: Optional underwater volume.
  • Dicing Quality, Screen Window Size, Downsample, Anti-Alias Blur: Render-time tessellation controls.
  • Materials Path / Surface / Interior / Proxy Material: Material assignments.
  • Enable Foam / Foam Particles: Render foam from a particle cache.

lop_kill_camera_motion_blur (LOP: Kill Camera Motion Blur)

Removes all time samples from camera primitives to disable camera motion blur only.

lop_kill_time_sample (LOP: Kill Time Sample)

Removes all time samples from specified primitives, collapsing animated properties to a single value.

  • Primitives: USD primitives to process.
  • Frame: The frame value to retain when flattening time samples.

lop_load_sequence_vdbs (LOP: Load Sequence VDBs)

Creates a USD stage with a Volume and one OpenVDB primitive per grid from a VDB file sequence. The filePath, fieldName, and fieldIndex properties of each OpenVDB primitive are time-sampled.

  • Parent Primitive: Root path for the Volume primitive.
  • Primitive Name: Name of the Volume primitive.
  • VDB Files: Sequence file path.
  • Start/End: Frame range.
  • Grids: Grid names to include (space-separated). One OpenVDB primitive is created per grid.
  • Grid Index: Grid index (usually 0).
  • ExtentsHint From File: Load each VDB per frame to compute and write a time-sampled extentsHint on the Volume. Accurate but slow.

lop_manually_set_extentsHint (LOP: Manually Set ExtentsHint)

Manually sets extentsHint on a primitive from a manual value, SOP node, geometry file, or VDB file. Supports time-dependent mode to write time samples.

  • Prim Path: Primitive to set extentsHint on.
  • Time Dependent: Enable per-frame time sampling.
  • Start/End: Frame range (when Time Dependent is enabled).
  • Manually: Min/Max bound values.
  • From SOP: SOP Path, Group Type, Group name.
  • From Files: File path, Group Type, Group name.
  • From VDB Files: VDB file path.

lop_modify_pointInstancer_from_sop_points (LOP: Modify PointInstancer from SOP Points)

Updates PointInstancer data using point attributes from a SOP node.

  • PointInstancer Primitive: Target PointInstancer USD prim path.
  • SOP: Source SOP node.
  • Positions: Sync from P attribute.
  • Orientations: Sync from orient attribute.
  • Scales: Sync from scale attribute.
  • ProtoIndices: Sync from index attribute.
  • InvisibleIds: Sync from invisible attribute.

VOP Nodes

fisheye_vex (VOP: Fisheye Lens VEX)

A CVEX lens shader that applies a fisheye distortion for Mantra rendering.

  • FOV: Field of view in degrees (default: 180).
  • Mask: Enable/disable masking outside the circular frame.

Mandelbrot3D (VOP)

Entagma - VEX in Houdini: Mandelbrot and Mandelbulb

Zeus VFX - 3D Fractal in Houdini Tutorial

Mandelbrot3D

vop_mtlx_fake_window (VOP: MaterialX Fake Window)

Fakes an interior seen through a window using five directional maps and no geometry, for Solaris and Karma. Walks the incident ray into a virtual box behind the surface and samples whichever wall it reaches.

Place it in a Material Library or MaterialX Builder and connect its output to the base colour or emission of an mtlxstandard_surface. The surface needs usable UVs, since the room is laid out in UV space.

  • Opposite / Left Side / Right Side / Top / Bottom Map: Textures for the five walls of the virtual room.
  • Depth: How far the room extends behind the surface, in UV units.
  • Outputs: Color, In Depth (0 at the window to Depth at the back wall), Out Normal (world space, for the surface shader's normal input), and Wall Id (0 back, 1 left, 2 right, 3 ceiling, 4 floor).

vop_mtlx_volume_texture (VOP: MaterialX Volume Texture)

Samples a volume texture atlas exported by Labs VolumeTexture Export, for Solaris and Karma. Picks the two slices either side of the shading point's height and blends between them.

Place it in a Material Library or MaterialX Builder and connect its output to the base colour or emission of an mtlxstandard_surface. Export the atlas with Up Axis set to Y, which is the axis this node slices along.

MaterialX has no access to a bounding box, so the box is supplied as two constant primvars and the node works out the position inside it. They must describe the box the atlas was exported from, which is the prim's own extent whenever the geometry matches that box:

primvars:bboxmin   float3   constant
primvars:bboxmax   float3   constant

Being constant primvars rather than shader parameters, one material can be bound to many prims and each still uses its own box. The names are parameters, so they can point at whatever the scene already carries.

A surface sitting exactly on the volume's box samples its outermost shell, which for a fog volume is empty. Shade something inside the box, or a plane cutting through it.

  • Volume Texture: The atlas image.
  • U Tile / V Tile: Slice columns and rows in the atlas. Must match the export.
  • BBox Min Primvar / BBox Max Primvar: Names of the constant primvars holding the box corners.
  • out: Colour blended from the two nearest slices.

TOP Nodes

top_collect_stage_textures (TOP: Collect Stage Textures)

Collects all textures referenced in a USD stage and copies them to a new directory, replacing the path prefix.

  • Stage LOP Node: The LOP node providing the USD stage.
  • Texture Root Path: Source texture root path to match against.
  • Copy To: Destination directory.

About

Houdini Digital Assets Collection

Topics

Resources

Stars

19 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages