Morphing Meshes with Conformal Maps

calendar_today

11.10.2025

label

Modeling

mouse

Houdini 21

Description

Smoothly blending mesh surfaces by interpolating corresponding surface positions via conformal parameterizations.

1 Process

The procedure parameterizes both mesh surfaces by solving the Poisson equation with the attribute fill node. The resulting conformal maps are then matched to look up corresponding surface positions, which are stored as attributes. These positions are then linearly interpolated to smoothly blend the surfaces.

2 Code

A point wrangle for point-to-surface correspondence lookup using the conformal maps. It retrieves the map with vertex(), then uses uvdist() to query the target surface and primuv() to sample the exact target surface position pos_1. This target position is then stored in v@pos_1, making it ready for linear blending.

vector map = vertex(0, 'map', i@vtxnum);

int pr;
vector st;
uvdist(1, 'map', map, pr, st);

vector pos_1 = primuv(1, 'P', pr, st);

v@pos_1 = pos_1;

This deformation wrangle uses the lerp function to linearly interpolate the point's current position with the target position v@pos_1, controlled by the blend ratio parameter f@bias.

float bias = chf('bias');

pos = lerp(pos, v@pos_1, bias);
download

Downloads