Issue trying to weight paint if object has mirror+armature. #71213

Closed
opened 2019-10-30 10:46:56 +01:00 by Nahuel Belich · 19 comments

System Information
Operating system: Windows-7-6.1.7601-SP1 64 Bits
Graphics card: GeForce GTX 1070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 430.86

Blender Version
Broken: version: 2.82 (sub 1), branch: master, commit date: 2019-10-28 21:19, hash: 2dab4393b0
Broken: hash: 2.81 95f020c853d6, build date: 2019-10-14, 00:11:29

Worked: f88022b96f3a build date: 28/08/2019, 01:48

Short description of error
If an object has an armature its normal to move bones to see the effect and paint on the deform mesh, this always worked.
In the lastest builds it seems that adding a mirror modifier after the armature modifier mess up how the object its read and the stroke doesn't register that the mesh its deformed.

Exact steps for others to reproduce the error
Mirror afects vertex paint, error.blend
1-Open the blend file
(it was tested using default factory settings too but it was created with my normal set up, you may see some addons active, as i said i also tested in a default settings)
2-try to paint in the blue circle(1), nothing should happen.
3-try painting in the red square(2) it should paint, as if the cylinder wasn't deformed.
4-Reload the .blend file
5-delete the mirror modifier and repeat step 2 and 3

**System Information** Operating system: Windows-7-6.1.7601-SP1 64 Bits Graphics card: GeForce GTX 1070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 430.86 **Blender Version** Broken: version: 2.82 (sub 1), branch: master, commit date: 2019-10-28 21:19, hash: `2dab4393b0` Broken: hash: 2.81 `95f020c853d6`, build date: 2019-10-14, 00:11:29 Worked: `f88022b96f3a` build date: 28/08/2019, 01:48 **Short description of error** If an object has an armature its normal to move bones to see the effect and paint on the deform mesh, this always worked. In the lastest builds it seems that adding a mirror modifier after the armature modifier mess up how the object its read and the stroke doesn't register that the mesh its deformed. **Exact steps for others to reproduce the error** [Mirror afects vertex paint, error.blend](https://archive.blender.org/developer/F7871880/Mirror_afects_vertex_paint__error.blend) 1-Open the blend file (it was tested using default factory settings too but it was created with my normal set up, you may see some addons active, as i said i also tested in a default settings) 2-try to paint in the blue circle(1), nothing should happen. 3-try painting in the red square(2) it should paint, as if the cylinder wasn't deformed. 4-Reload the .blend file 5-delete the mirror modifier and repeat step 2 and 3
Author

Added subscriber: @NahuelBelich

Added subscriber: @NahuelBelich

#72633 was marked as duplicate of this issue

#72633 was marked as duplicate of this issue

#71804 was marked as duplicate of this issue

#71804 was marked as duplicate of this issue

Added subscribers: @Jeroen-Bakker, @mano-wii

Added subscribers: @Jeroen-Bakker, @mano-wii
Jeroen Bakker was assigned by Germano Cavalcante 2019-10-31 14:37:04 +01:00

Can I confirm.
This is probably due to using a mesh_eval_deform instead of mesh_eval_final somewhere.
@Jeroen-Bakker, is this your area?

Can I confirm. This is probably due to using a `mesh_eval_deform` instead of `mesh_eval_final` somewhere. @Jeroen-Bakker, is this your area?

Added subscriber: @Likkez-2

Added subscriber: @Likkez-2

Can confirm, happens while using Mask modifier too. Please fix, super annoying.

Can confirm, happens while using Mask modifier too. Please fix, super annoying.
Member

Added subscriber: @Mets

Added subscriber: @Mets
Member

Perhaps the same root cause as #68352.

Would be awesome if these bugs got some love, it's been a pain in the butt having to disable mirror and mask modifiers every time I go into weight paint mode. Note that I also need to change shading options when going into weight paint mode ever since 2.80. This means going into or out of weight paint mode now takes 6-8 actions (and my script to automate these actions causes crashes).

Perhaps the same root cause as #68352. Would be awesome if these bugs got some love, it's been a pain in the butt having to disable mirror and mask modifiers every time I go into weight paint mode. Note that I also need to change shading options when going into weight paint mode ever since 2.80. This means going into or out of weight paint mode now takes 6-8 actions (and my script to automate these actions causes crashes).

In #71213#806594, @Mets wrote:
Perhaps the same root cause as #68352.

Would be awesome if these bugs got some love, it's been a pain in the butt having to disable mirror and mask modifiers every time I go into weight paint mode. Note that I also need to change shading options when going into weight paint mode ever since 2.80. This means going into or out of weight paint mode now takes 6-8 actions (and my script to automate these actions causes crashes).

Yea, also the wireframe checkbox in weight paint does nothing now but that's a whole other issue.

> In #71213#806594, @Mets wrote: > Perhaps the same root cause as #68352. > > Would be awesome if these bugs got some love, it's been a pain in the butt having to disable mirror and mask modifiers every time I go into weight paint mode. Note that I also need to change shading options when going into weight paint mode ever since 2.80. This means going into or out of weight paint mode now takes 6-8 actions (and my script to automate these actions causes crashes). Yea, also the wireframe checkbox in weight paint does nothing now but that's a whole other issue.

Added subscriber: @Semple

Added subscriber: @Semple
Jeroen Bakker was unassigned by Germano Cavalcante 2019-11-25 15:04:01 +01:00

Added subscribers: @icappiello, @angavrilov

Added subscribers: @icappiello, @angavrilov

Mask can be moved after the Armature modifier, but mirror is a problem. This bug basically ignores all modifier starting with the first non-pure-deform modifier in the stack.

Mask can be moved after the Armature modifier, but mirror is a problem. This bug basically ignores all modifier starting with the first non-pure-deform modifier in the stack.

This issue was referenced by 893c29c15c

This issue was referenced by 893c29c15ca2fd95de79e9390b5650aaeabc999f

This issue was referenced by f1ac64921b

This issue was referenced by f1ac64921b49eaea8658d144754a1a532198c720

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'
Alexander Gavrilov self-assigned this 2019-11-30 18:45:05 +01:00

Since there fortunately was a specific 'worked' and 'broken' version pair in this report, I found which specific change broke it and reverted it.

Now it just skips those Mirror and Mask modifiers like before, which is not ideal, but better than this behavior.

Since there fortunately was a specific 'worked' and 'broken' version pair in this report, I found which specific change broke it and reverted it. Now it just skips those Mirror and Mask modifiers like before, which is not ideal, but better than this behavior.

Added subscribers: @Lumpis_Wartimus, @JacquesLucke

Added subscribers: @Lumpis_Wartimus, @JacquesLucke
Member

Thanks a lot for the fix on this! An improvement I wish for, is if the modifiers that are not being considered by painting, could just be disabled entirely while in weight paint mode.

Currently, for the mirror modifier, we just can't paint on the mirrored part, which is not a big deal. But if there is a Mask modifier before the Armature modifier, we can paint on the masked out parts, which is very prone to making mistakes. Although I feel like it's not technically a bug, since the code is probably doing what it was intended to do, but it is an unfortunate side-effect. Should I open a fresh report?

Thanks a lot for the fix on this! An improvement I wish for, is if the modifiers that are not being considered by painting, could just be disabled entirely while in weight paint mode. Currently, for the mirror modifier, we just can't paint on the mirrored part, which is not a big deal. But if there is a Mask modifier before the Armature modifier, we can paint on the masked out parts, which is very prone to making mistakes. Although I feel like it's not technically a bug, since the code is probably doing what it was intended to do, but it is an unfortunate side-effect. Should I open a fresh report?
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
6 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#71213
No description provided.