Page MenuHome

Weight Paint Mode: wrong vertex selection with active xray and object with modifier
Open, Confirmed, MediumPublic

Description

System Information
Operating system: win10 pro - 64bit
Graphics card: GeForce GTX 960

Blender Version
Broken: blender-2.81-f4e27bc2c981-win64

Short description of error
Box-selecting vertices in weight paint mode behaves as if the deformation of the armature isn't applied.

Exact steps for others to reproduce the error

  • Start with a model weighted to a armature with a pose != restpose (e.g. take the file I have uploaded)
  • Model needs a Mirror modifier applied before the armature modifier (see example) (without modifier it will work as expected without bug)
  • Activate X-Ray view mode (without it will work), viewport shading doesn't seem to matter
  • Select model and go into weight paint mode
  • Activate vertex selection (Face selection will work)
  • Choose Select Box mode (Single click selection will work)
  • Try to precisely box select one or multiple vertices which are transformed by the armature pose - it will not select them or it will select other vertices depending on your box selection and how far the vertices are transformed from their rest position.
  • Now try to precisely box-select them at their rest position - they will be selected

Details

Type
Bug

Event Timeline

Philipp Oeser (lichtwerk) lowered the priority of this task from Needs Triage by Developer to Confirmed, Medium.Aug 7 2019, 11:39 AM

Confirmed, checking...

Works if X-Ray alpha is actually 1.0 (of course this defeats the purpose -- just saying if this helps resolving the bug...)

Looks like geometry of any generative modifier interferes with selection in this scenario?
(e.g. substituting the mirror with an array modifier will result in non of the generated geo to be selectable at all -- which is not the case if X-Ray is OFF...)

@Jeroen Bakker (jbakker): does this ring a bell?
CC @Clément Foucault (fclem)
CC @Germano Cavalcante (mano-wii)

It seems that this problem has always existed.
The feature was added in rB4612bbf7dbe7
@Campbell Barton (campbellbarton), is there any reason to use mesh deform instead of the final one?

diff --git a/source/blender/editors/space_view3d/view3d_iterators.c b/source/blender/editors/space_view3d/view3d_iterators.c
index f6fa6f6fb45..efb71f9a682 100644
--- a/source/blender/editors/space_view3d/view3d_iterators.c
+++ b/source/blender/editors/space_view3d/view3d_iterators.c
@@ -126,7 +126,7 @@ void meshobject_foreachScreenVert(
   Scene *scene_eval = DEG_get_evaluated_scene(vc->depsgraph);
   Object *ob_eval = DEG_get_evaluated_object(vc->depsgraph, vc->obact);
 
-  me = mesh_get_eval_deform(vc->depsgraph, scene_eval, ob_eval, &CD_MASK_BAREMESH);
+  me = mesh_get_eval_final(vc->depsgraph, scene_eval, ob_eval, &CD_MASK_BAREMESH);
 
   ED_view3d_check_mats_rv3d(vc->rv3d);