Photogrammetry in Houdini

Cleanup, reconstruction, optimization, and using scans in simulation

Why Houdini for Scan Data?

Houdini occupies a central place in the post-photogrammetry processing pipeline for a few fundamental reasons. Its ability to process datasets with millions or even billions of points without degrading performance, combined with its non-destructive procedural architecture, makes it the ideal tool for cleanup, reconstruction and optimization work.

Houdini's procedural nature means every modification made to the node network can be replayed from the source data without ever altering the original - a valuable property when working with reference assets that must stay intact throughout production.

Importing Point Clouds

The File SOP is the standard entry point for loading geometry into Houdini, natively supporting .bgeo (Houdini's internal format), .ply, .abc (Alembic) and, with the Labs tools, native LAS/LAZ formats. Point attributes are preserved on import - RGB color, normals, and any custom attribute present in the source file.

The SideFX Labs Point Cloud Tools package offers specialized nodes for importing native LAS/LAZ LiDAR data, automatically handling geographic coordinate systems (map projections) and letting you filter by semantic point classification directly on import.

Interactive visualization of dense point clouds in the Houdini viewport benefits from several optimizations: coloring by attribute (intensity, classification, RGB), adaptive point size based on local density, and performance culling to maintain an interactive framerate even on datasets of several hundred million points.

Cleaning the Point Cloud

Raw data from a scan or photogrammetry session invariably contains noise, artifacts and outlier points that must be removed before reconstruction.

  • Blast SOP - removes points identified manually or by attribute-based criteria.
  • Attribute Delete - cleans out superfluous attributes that needlessly bloat the file.
  • Facet SOP - unifies normals to guarantee a coherent surface orientation.
  • Clean SOP - merges duplicate or overly close points to eliminate redundancy.
  • Point Cloud Denoise - applies smoothing to reduce measurement noise; VEX expressions let you write conditional filters on any attribute.
Houdini's procedural pipeline means every cleanup operation should be organized in a clearly structured, commented node network. A well-organized network lets any team member understand and modify the pipeline mid-production without risking data loss.

Mesh Reconstruction

Converting a point cloud into a polygonal mesh is a critical step whose quality conditions the entire downstream production chain.

VDB from Points is the most robust reconstruction approach in Houdini: it converts the point cloud into a volumetric field (a VDB volume), with resolution controlled by the Voxel Size parameter. Once the volume exists, VDB Convert extracts the iso-surface via the marching cubes algorithm - its Adaptivity parameter controls the resulting surface's smoothing, with a high value simplifying the mesh in flat areas while preserving detail in high-curvature zones.

SideFX Labs tools also offer Poisson reconstruction as an alternative, giving better fine-detail preservation and more precise control over the resulting topology.

Retopology and Optimization

The high-poly mesh from reconstruction isn't directly usable in production - an optimization pass is needed to reach a polycount matched to its final use.

  • Remesh SOP - redistributes polygons uniformly across the surface, targeting a defined polygon count. The Preserve Features option guarantees sharp edges and characteristic corners are kept.
  • PolyReduce - applies intelligent decimation (edge collapse) that reduces polygon count while preserving geometric fidelity as much as possible; reduction can be specified as a percentage or a target polygon count.

Generating LODs

Automatically generating multiple levels of detail is one of Houdini's most common uses in a game pipeline. A typical workflow produces four levels:

LevelNamePolygonsUse
LOD 0High-poly100%Close-up view
LOD 1Medium50%Medium distance
LOD 2Low25%Far distance
LOD 3Very low10%Extreme distance

Texturing and Baking

Houdini offers several UV unwrapping approaches: UV Flatten (automatic projection optimized for complex surfaces), UV Pelt (relaxation for organic surfaces, minimizing distortion), and UV Layout (efficient packing of all UV islands into texture space).

The Labs Bake Texture node automates transferring information from the high-poly mesh to the optimized low-poly mesh, generating the full set of PBR maps needed for production: a Normal Map (transferred micro-geometry detail), AO (computed ambient occlusion), and color from vertex colors.

RBD Destruction on Scanned Geometry

Using scanned geometry as the base for VFX simulations has considerable advantages over manual modeling - the geometry is authentically that of a real structure, with all its irregularities, wear details and characteristic imperfections, and scanned materials have a photoreal appearance that integrates naturally into a live-action context.

Voronoi Fracture is the primary tool for breaking a mesh into pieces for a destruction simulation - the distribution of fracture points controls fragment size and regularity, and interior surfaces can be added automatically to simulate a freshly broken material's cross-section.

The RBD Solver (Rigid Body Dynamics) manages the physical simulation of fragments post-fracture, handling precise collision detection between fragments, glue constraints with strength values defining the break threshold, and external forces (gravity, wind, impacts). For large-scale simulations involving very large numbers of rigid bodies, the Bullet Solver offers superior performance through its optimized physics engine - using simplified collision proxy shapes for complex fragments drastically reduces computation time.

Standard destruction workflow:

  1. Preparation - cleaning and optimizing the scanned mesh for simulation.
  2. Fracture - applying Voronoi Fracture with interior-surface parameters.
  3. Constraints - setting up glue constraints and defining strength values.
  4. Simulation - computing RBD with impact forces defined.
  5. Cache - Alembic export of the simulation for rendering.
In production, it's standard to run simulations with a low-poly proxy mesh to speed up test iterations, then substitute the high-poly mesh only for final render frames. This can cut simulation time by a factor of 10 to 100 depending on geometry complexity.

Fluid and Volumetric Simulation

The FLIP solver simulates photoreal liquid water interacting with scanned geometry - water surfaces, splashes, foam and secondary spray droplets can be simulated and rendered separately for maximum compositing control.

The Pyro solver handles volumetric smoke and fire simulation, with physically plausible combustion - temperature advection, buoyancy velocity and realistic dissipation. In the context of destroying scanned geometry, smoke generated by a collapse is simulated in direct interaction with the fractured geometry.