diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-04-02 15:39:40 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-04-02 15:39:40 +0400 |
commit | fb4b16b799ca514a9cc30d19f8e2274bf912246d (patch) | |
tree | 30181dcdd93a012e3faf5239cf7889cffd2f33c7 /source/blender/editors/armature | |
parent | b1a0c861631c85479a25578b1965b34a48d150b1 (diff) |
"Fix" #20225: mesh deform surface modifier problems. This mode was an
experiment and turn out to work poorly because it does not preserve
rotations, so I've just removed the option now. Alternative is to use
a solidify modifier on the cage mesh, which will usually give better
results.
Diffstat (limited to 'source/blender/editors/armature')
-rw-r--r-- | source/blender/editors/armature/meshlaplacian.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/editors/armature/meshlaplacian.c b/source/blender/editors/armature/meshlaplacian.c index 3190d8ad576..c5e96dd5fd4 100644 --- a/source/blender/editors/armature/meshlaplacian.c +++ b/source/blender/editors/armature/meshlaplacian.c @@ -1886,6 +1886,7 @@ static void harmonic_coordinates_bind(Scene *scene, MeshDeformModifierData *mmd, BLI_memarena_free(mdb->memarena); } +#if 0 static void heat_weighting_bind(Scene *scene, DerivedMesh *dm, MeshDeformModifierData *mmd, MeshDeformBind *mdb) { LaplacianSystem *sys; @@ -1953,6 +1954,7 @@ static void heat_weighting_bind(Scene *scene, DerivedMesh *dm, MeshDeformModifie mmd->bindweights= mdb->weights; } +#endif void mesh_deform_bind(Scene *scene, DerivedMesh *dm, MeshDeformModifierData *mmd, float *vertexcos, int totvert, float cagemat[][4]) { @@ -1981,10 +1983,14 @@ void mesh_deform_bind(Scene *scene, DerivedMesh *dm, MeshDeformModifierData *mmd mul_v3_m4v3(mdb.vertexcos[a], mdb.cagemat, vertexcos + a*3); /* solve */ +#if 0 if(mmd->mode == MOD_MDEF_VOLUME) harmonic_coordinates_bind(scene, mmd, &mdb); else heat_weighting_bind(scene, dm, mmd, &mdb); +#else + harmonic_coordinates_bind(scene, mmd, &mdb); +#endif /* assign bind variables */ mmd->bindcos= (float*)mdb.cagecos; |