[Bf-committers] Implementing "weight from Bone Glow" as an alternative for "weight from Bone heat" ...

Gaia gaia.clary at machinimatrix.org
Sun May 3 12:38:16 CEST 2015


I am trying to implement "weight from bone glow" algorithm that seems
to have some improvements over the "weight from bone heat" which
blender has today.

So far i found out the following:

1.) Both algorithms work by first calculating an initial set of weights for a
given skin/skeleton combination, then this initial set is smoothed by
applying a diffusion equation.
2.) Bone heat and Bone glow differ "only" in the way how they calculate
the initial set of weights. The following diffusion calculation is the same
for both.

Detailed information about Bone glow is here:


@Brecht: I took a long look at the code in Blender but i could not
isolate the part which does the initial weight calculation. My aim is
to replace this calculation by the bone glow algorithm and thus test
how well the bone glow algorithm actually works in Blender.
Could you comment on the code to explain how the algorithm is
actually implemented?

meshlaplacian.c (line 624): heat_bone_weighting()

I understand it like this:

654-678 Mask for only working on selected vertices/bones
680-700 Initial setup of the data for the calculations
701-720 clear all weights from weight groups
731     This seems to be where "everything" happensin one step
732-776 copy the calculated weights to the vertex groups

I believe that i "only" have to modify what happens in line 731, but
my problem is how can i change what happens in that function?

I looked at the following pages as well but i could not find
any documentation about how the opennl api has to be used:


I'd appreciate any hint for where to find more information.
I know that it will take me a long time to get this solved, so
if someone knows how to implement the bone glow easily
into blender, then please feel free to do so or at least share
the howto.


More information about the Bf-committers mailing list