Volumetric Deform (HDA)

   124   0   0
User Avatar
Member
14 posts
Joined: Aug. 2020
Offline
Sometimes you need to deform an object inside another with respect to the internal volume, for example muscle inside a body.


One way is converting the object to tetrahedrons, since tets have 3D primuvw coordinates for interpolation. Sadly this isn't always an option, because the triangulation changes when animated.

A better approach is using Positive General Mean Value Coordinates (PGMVC), as implemented many years ago by Sibbarick [forums.odforce.net].


It works by casting rays in a sphere from each point, creating lines. Each line acts as a distance constraint, pulling the point as the walls move. It's almost like Point Deform with occlusion, where only the faces visible to a point light are used for deformation.


I rewrote Sibbarick's method using primuv to make it simpler, with slightly better results on the exterior.

Download here:
https://github.com/MysteryPancake/Houdini-Fun/tree/main?tab=readme-ov-file#hda-volumetric-deform [github.com]
Edited by Hallam Roberts - today 01:29:14

Attachments:
mvccubes.gif (492.7 KB)
mvcraycast.gif (7.1 MB)
Enter_a_filename.png (733.1 KB)

  • Quick Links