Dyntopo, are skinny faces causing problems?

Every time I do some basic tests with dyntopo, I get fairly ugly results because of skinny faces.

To resolve I zoom out, and stroke the area again so the skinny faces collapse the edges… but it seems like it would be better not to create the skinny faces to begin with.

I suspect this is partly caused by sculpting onto very low-poly modals, so in practice it may not be that bad.


For users here who spend hours sculpting, is this an issue?

I had a look into it and wrote up a patch, and heres before/after comparison with 2.74 release (it can be tweaked of course),

http://members.iinet.net.au/~ideasman42/dyntopo_skinny_faces.png

Edit, diff now on our tracker.
https://developer.blender.org/D1234

for me it is a problem and a way to having to re sculpt less over certain areas is more than welcomed.

To be sure, could you please be so kind to make some builds to test the new behaviour to see how it affects possible speed decrease/increases, etc?

Heres the patch, (on Linux currently so my builds may not be so useful for users testing)
https://developer.blender.org/P218

Also, am not so concerned with speed right now, would rather first know if its worth finishing off the patch.
(while the patch isn’t really slow, it could be optimized a little)

Looks like a big improvement to me.

I haven’t done a huge amount of sculpting, but the sculpting that I have done, I’ve found these skinny faces to be a problem.

I mostly find it to be a problem when using the Snake Hook tool. The Snake Hook pulls out extra geometry with dynamic topology, but this geometry tends to have the skinny faces that you’re talking about, making it a bit of an effort to smooth them out and work with.

Again, my experience with sculpting is limited, but looking at your screen shots, I can’t see why this wouldn’t be a big improvement with dynamic topology.

They’re a big problem. 3dCoat just tackled them as well for live clay. Would be great to see them go away in Blender too.

They’re annoying to say the least, and you have to make two or three extra steps to remove them, so not having the skinny faces in the first place would be a huge improvement!!

Please finish the patch :smiley:

Indeed, they cause artifacts in the shading and I have to go over my model and remove those faces in edit mode frequently after a sculpting session. This patch looks amazing, thank you Campbell!

Anything to improve the structure of Dyntopo sculpt geometry (to noticeably lessen the chance of shading artifacts), is fine by me.

I say go ahead and commit the patch.

hmm, i never experienced a problem with skinny faces. and i do sculpt a lot. most my blender work is sculpting …i rather not have some feature that slows dyntopo down. we need more speed and the ability to sculpt higher polygoncounts indynatopo with good speed, not features, imho…

“Skinny” faces are important in sculpting.
A more evenly distributed mesh needs to be much more dense.
After all, we also use to exit dyntopo from time to time and use shrink or crease (better) to add some crispness here and there. Such brushes also produce “skinny faces”. Move or twist brushes also produce skinny faces, as they aren’t compatible with dyntopo.
However, as an option, yes, it can be very useful.
Thank you for having some look into dyntopo.

Skinny faces… yeah, many blender sculptors use to decimate (modifier) from time to time, when the dyntopo mesh becomes heavy.
This workaround also creates “skinny” faces. The best tool around is the zbrush decimation master. It certainly creates skinny faces too.

THIS!!! Im waiting for this since Dyntopo was released!

Sculptris work this way since forever, and even when Raul Fernandez was working doing Unlimited Clay for Blender, he found that it was the better solution.

Here is a video from Raul where he demosntrate his solution, very similar to what you are doing now:

So please, continue with your work to implement this in Blender, maybe you can look at Raul work and use some of his code. Even if some people like the old way, maybe you can make a option for enable/disable it.

Thank you ideasman42.

Have you looked at the comparison screenshot? The mesh with the skinny faces looks pretty dang bad topology-wise compared to the one on the right (which still allows variable density and all of the other good stuff).

The new way of creating topology would allow for the same amount of detail with less faces and make it easier to rig and pose meshes (especially with the Delta Mush smoothing). It will also make it easier to avoid bias artifacts when rendering in Cycles.

Here’s the patched - blender-no-skinny for OSX. Download and test it.
BLENDER_NO_SKINNY
Just a few minutes test (on an older ~700 k dyntopo sculpt). It looks good so far. A little smoother for my taste (just a bit).
However, it works just fine.
@Ace, please try to understand my posts. Decimators, brushes without dyntopo support, all these create skinny faces too. A normal and expected behavior.

The decimator, I think, could also use a system that tries to avoid real skinny faces.

Since you think it might make things too smooth, perhaps Campbell can implement a slider to reduce the effect of the patch, but not completely remove it (since you may indeed want skinnier faces on denser meshes and for sharper edges, but not ultra-skinny ones)?

Thanks for testing & @michalis for the test build,
updated the patch with some minor optimizations, though the result is roughly the same as before.
(https://developer.blender.org/D1234)

@doris, (and anyone not running into this problem)
I suspect you’re sculpting onto a fairly high poly base-mesh.
if the dyntopo resolution is close enough to the mesh you sculpt onto, these artifacts are less likely to occur.

Regarding speed, I did some tests and this area really isn’t a bottleneck, so slow-downs here which give better geometry distribution may give an overall speedup.
In my tests sculpting onto a make-human base-mesh the patch gives 2-3% speedup (and a little lower polygon output), but this is so small as to be hard to measure.

One tricky aspect is how localized the subdivisions should be, the patch potentially can cause subdivisions quite a distance out from the brush stroke (in the interest of avoiding skinny faces).
However I think it may be worth keeping since I think its normally not so desirable to have very high poly geometry connected directly next to low poly areas.
Another example:

As long as the topology outside of the brush stroke remains planar with its originating face I don’t see it being an issue.

i actually do not sculpt very highpoly in dynatopo. i dont do decimate or things like that, i just turn dynatopo on and sculpt all i want. after that i retopo and sculpt in multires anyway to get an optimal sculpt …

i tried the testbuild michalis was sharing. i did not notice a slowdown, this is good. i did notice however that the creasebrush does not work like before, it is now harder to get a clean creaseline. also the brushes behave smoother than i like. … so, i would prefer if there were a checkbox so that we can turn off this “avoid skinny face”-feature, or turn it on when needed/wished.

thanks for looking into dynatopo. i appreciate a lot, since dynatopo is my favourite sculpting tool, much better than zbrushs dynamesh btw…

Nice to see Dyntopo getting some love. My biggest issue is the constant stuttering when sculpting mid to high poly meshes. I guess it’s automatically optimizing the mesh every while but it gets fairly annoying especially for denser meshes…even though the brush strokes themselves are fast and smooth.

To avoid long edges(if I understood this discussion correctly), I always have subdivide+collapse on for brushes like snakehook, or those that add a lot of topology. Only brushes I switch of collapse for are pinch and similar. So, I have to carefully switch between these approaches(which would be great to have them bound to the brush, to switch off collapse for pinch separately)…
those are my notes.
I use dyntopo a lot for my work, example you can see here:
https://plus.google.com/photos/114654355051877519363/albums/6063112909952314449/6119471864159883282?banner=pwa&pid=6119471864159883282&oid=114654355051877519363
(yes, that is not a Cycles render :wink: )