Deintersecting spheres with Voronoi

calendar_today

21.04.2024

label

VEX

mouse

Houdini 18.0

Description

Deintersecting overlapping spheres by iteratively extending voronoi diagrams based on point scales.

1 Code

Point wrangle inside a SOP solver node:

int nbs[] = neighbours(0, i@ptnum);

foreach(int nb; nbs){
    vector pos_nb = point(0, 'P', nb);
    float scale_nb = point(0, 'pscale', nb);
    float dist_nb = distance(v@P, pos_nb);
    vector dir_nb = normalize(v@P - pos_nb);
    if(dist_nb < (scale_nb + f@pscale)){
        v@P += dir_nb * 0.01;
    }
}
download

Downloads