Page MenuHome

B-Mesh: Issue with Weight Painting
Closed, ResolvedPublic

Description

Relates to: T30234

Windows 7 x64, SVN 44262, nvidia GT540

1) Open Blender, go into Weight Paint Mode
The colors are black and grey and you can't draw weights.

2) The Issue is fixed by going into Vertex Paint Mode and then back to Weight Paint mode, then all is normal

Details

Type
Bug

Event Timeline

This is a display bug: creating the DerivedMesh updates CD_WEIGHT_MLOOPCOL values in DM_update_weight_mcol(), but CDDM draws using tesselated faces. If the finaldm produced in mesh_calc_modifiers() does not have tessfaces, then recalcTesselation() is called and the tesselated colors (CD_WEIGHT_MCOL) are copied over from the loop colors. If the finaldm is already tesselated, CD_WEIGHT_MCOL is never updated.

Couple ways to solve this: can either add in an extra loop to copy over the weight colors in this case, or could clear the mesh's tessfaces when entering weight paint mode. Could use guidance as to which the correct approach :)

worked around for now by not having tessfaces on the mesh by default though if tessfaces are added this can still happen.

for eg - run C.object.data.update() and you can see the bug again.

the modifier stack calculation could check for this case explicitly - "if the mesh has weights and started with tessfaces always retesselate", but this isnt at all elegant.

This case is one of those tackled by patch in [#30234].

Should be definitively fixed in svn44978, closing.

Thanks for reporting! :)