Page MenuHome

Sculpt - Smooth Brush and Multires Edits Delete Mesh Elements
Closed, InvalidPublic

Description

System Information
Windows 7 x64

Blender Version
Broken: 2.76b Official

No idea how long it's been like this, I can replicate going back to at least 2.73

Short description of error
Watch in wonderment as the sculpt brush and multires modifier cannibalize parts of the mesh.
Both seem to eat geometry on multires models. When applied to base, these changes create odd discontinuities in the base mesh that should be impossible to create otherwise. There would appear to be some kind of serious desync between the base mesh and the multires mesh that is unfixable by the user once it's appeared.

Exact steps for others to reproduce the error
Repeat the steps in the attached video with the test file.
https://www.youtube.com/watch?v=G4h9un6ckHw&feature=youtu.be

Details

Type
Bug

Event Timeline

Matt Heimlich (m9105826) set Type to Bug.
Matt Heimlich (m9105826) created this task.
Matt Heimlich (m9105826) raised the priority of this task from to Needs Triage by Developer.

On a related note, if I apply the multires modifier it looks like this.

If I then export that object as an obj and open in another 3D package, I get this.

There seems to be something very wrong going on with the mesh definition here.

OBJ included for examination.

Hi, can verify with Blender 2.76b and latest master.

Opensuse 13.2/64
Intel i5 3770K
GTX 760 4 GB /Display card
GTX 670 2 GB
Driver 355.11
Intel opencl_runtime_15.1_x64_5.0.0.57

Mib

Another note, even after applying multires, if you attempt to sculpt you get the same result where the smooth brush eats the mesh, so it would appear that this is related to the mesh data of this object itself rather than just the multires.

The mesh data is corrupt - there are NAN vertices.

Once this happens a lot of tools wont work properly.

To fix the bug properly we need to know how the vertices became NAN.

Though to detect the exact moment this happens we likely need a debug option for sculpting, which alerts once this happens since its often hard to see.

A quick workaround is to zero all of these vertices,

# Zero all nan vertices and update the mesh.
print len([v.co.zero() for v in bpy.context.object.data.vertices if any(not isfinite(a) for a in v.co)])
bpy.context.object.data.update()

Of course its not expected users should do this as part of normal workflow.

Can you correct the mesh with the script above, and re-create the problem?

Campbell Barton (campbellbarton) triaged this task as Needs Information from User priority.Jan 26 2016, 11:06 PM
Bastien Montagne (mont29) closed this task as Invalid.

No news since one week…