Page MenuHome

Autosmooth/sculpt/viewport bug
Closed, ResolvedPublic

Description

System Information
windows 8.1 surface pro intel HD 4000 ;
windows 7 nvidia geforece Gtx 560

Blender Version
Broken: 2.76b
Worked: (optional)

Short description of error
viewport does not update shading of model while sculpting on meshes with matcap set throught shadeless material with texture mapped to normal and Autosmoth checkbox checked in Normals section of object Data.

Exact steps for others to reproduce the error
Create suzanne, add material in Blender Internal and check shadeless in shading section, go to texture tab. Add texture and choose any of this round ball images like here
https://www.google.pl/search?q=matcap+material&source=lnms&tbm=isch&sa=X&ved=0CAcQ_AUoAWoVChMIlrG2vZqByQIVCf5yCh1U2QDa&biw=2000&bih=969&dpr=0.8

go to mapping section and choose normal from coordinates section. Then go to object Data tab and check autosmooth checkbox.

Then add multiresolution subdivide few times, go to sculpt mode and start sculpting. Shading of model will update only if you exit sculpt mode and move back to sculpt mode.

Event Timeline

Paul (rice) raised the priority of this task from to Needs Triage by Developer.
Paul (rice) updated the task description. (Show Details)
Paul (rice) added a project: BF Blender.
Paul (rice) set Type to Bug.
Paul (rice) added a subscriber: Paul (rice).

Autosmooth was never supported in sculpt mode as far as I know.

Antony Riakiotakis (psy-fi) claimed this task.

I'll be closing this as not supported. Regenerating autosmooth normals in sculpt mode would make sculpting quite slow anyway. It's just not possible to work like that.

Im not asking here to add autosmooth to sculpting. I think that turning autosmooth option off everytime someone enters sculpt mode might be solution for this. Leaving this unresolved will be confusing for some people.

Regards.

You have a point let me check if it;s possible

Campbell Barton (campbellbarton) lowered the priority of this task from Needs Triage by Developer to Confirmed, Medium.Nov 10 2015, 1:09 AM

As said above, just adding

	Mesh *me = (Mesh *)ob->data;

	if (me->flag & ME_AUTOSMOOTH)
		DAG_id_tag_update(&me->id, 0);

in sculpt_flush_update makes this work. You can even see custom normals now, but speed-wise it's unusable. The problem with mesh autosmooth is that it's a mesh variable and at the time we upload normal uploads GPU we only have access to the derivedmesh. It's probably possible to somehow hack this in though.

Sorry to bother, but trick with autosmooth checkbox works only if i use multiresolution modifier. I just discovered that if i apply midifier i get same visual bug no matter what position autosmooth check box is left. You can check this by downloading file that i atached in first post and just apply multiress modifier then try to sculpt.

Regards,