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

Brecht Van Lommel brechtvanlommel at pandora.be
Sun May 3 13:39:21 CEST 2015


Hi,

On Sun, May 3, 2015 at 12:38 PM, Gaia <gaia.clary at machinimatrix.org> wrote:
> 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.

That seems right.

> 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?

The linear system is solved at line 731, but it's only the
construction of the system that needs to change.

You need to modify heat_set_H where the values heat.H and heat.p are
computed, these correspond to the H and p in the original and new
paper. At lines 726-728 these values are set into the right hand side
of the linear system. The heat_source_closest test there may also need
to change if visibility is no longer a binary value.

Brecht.


More information about the Bf-committers mailing list