Is This A Tessellation Bug?

I was doing some character testing in 4.16 and wanted to see how it looked with tessellation. The character on the left is a skeletal mesh, the character on the right is the same mesh just loaded as a a static mesh to show the difference. The character has multiple material ID’s and are the same materials on both mesh. The skeletal mesh is stretching at the border of the head material where it meets the body material. No matter what setting I use for the tessellation it has the glitch where the vertex look like they are stretching towards the center pivot. The strange thing is it’s only at the neck. The nails are a different material and I added tessellation to them just to see if they had the same glitch and they didn’t.
Also, if you zoom out to where the tessellation has no effect from the distance multiplier the stretching goes away.

I had researched the problem and the person in that post had found the same thing. It’s from 2014, and it seems it has never been resolved or at least no fix was found.

I’m unsure if it’s a bug or I am doing something wrong, but it’s only affecting the skeletal mesh and not the static. Is it something I am missing in the upload? Or, does tessellation not work with skeletal mesh? Or is it because of the multiple materials?

Taps on screen Anyone?
Isn’t answerhub the place to get answers?

I am having the same issue with PN Triangles. It works fine when not playing any animation.

Hi there …

Alright found a way to fix this ( workaround / hack :)))… add a mask in the tessellation input … and black out those polygons at the edge of the neck …

If those polygons will have a value of 0 (black in the mask) … then they wont create those artifacts …because they won`t be tessellated

Cheers

Hi sol4rdust,
Thanks for looking into this and answering. Unfortunately it’s either not working for me, or I’m just not doing it right. I created the mask with the values black at the neck seam but none of the ways I tried using that mask in the tessellation input have yielded results. I hate to ask any more of you since you figured out a solution that works for you and you took the time to answer here, but could you tell me how you are hooking it up to get the results?
Thank you.

Of course… so …

Your UV mapping is different but you can figure out whats happening here… i`ve blacked out the polygons that behave strangely. Then you use this texture to drive the tessellation multiplier from the shader.

You can set up the nodes like so:

228324-shader-setup.jpg

Of course, if you plan to displace the tessellated areas you wont be able to since those polygons are now effectively ignored by tesselltion ... but at least you wont get that female beard anymore … :))

Here is a working character that had the same issue as yours:

And here is how my bug presented itself…

Cheers… I hope this helps…

Hi again,
Tried everything you said, made the mask, set up the material and presto! No beard :))
But when looking closer it looked like there was no tessellation happening. So I went into wire frame view in UE and I was right. No tessellation. If I turn the tessellation switch scaler parameter to 1, it turns on tessellation, but then the problem is still there. I appreciate your help, but it just doesn’t want to work for me. :frowning:

When I turn on Tessellation.

Ok looked closely… and this is what happens… the mask doesnt cover the whoel affected polygons… the green ones are fixed but the red triangles stilll get tessellated… make your mask a little bigger…

question, whats the purpose of the displacement map ? in your case … do you want to round everything up ? or you want to displace certain areas ?

I want to round everything up. I made the mask in substance painter with the polygon fill tool. It fills the complete polygon with what ever color you want. In the case of a mask it either fills with white 1, or black 0. I am using a substance to make the skin in Unreal, it’s so you can make skin edits in the character creator. And I used the displacement map because that’s what I read you needed to do in the UE docs. I wouldn’t know how to set it up without.

Are you using PN triangles or flat tessellation?

I checked my mask in photoshop. The blacks are 0 and the whites are 255, which is complete white.

The problem I’m having is, even when I turn the switch on in a material instance, there is absolutely no tessellation on any part of the head.

Can you show me a wire frame picture of your character so I can see how the tessellation is working?

substance is ok… just black out the next row of polygons too… and it will work

i use PN triangles… it automatically smooths the character

If you look at my black and white mask … i did more rows of polygons

I finally got it to work. I used a bit of a different setup. I used a scaler 0 in the A channel of the lerp, a scaler 1 in the B channel and the mask in the alpha. The masks finally worked that way, before for some reason it was completely masking out the tessellation. I do appreciate all your help as without it I would never even gotten this far. Thank you, you’re awesome.

that way works too… but my way allowed you to control the intensity of the tessellation…

the mask was in the A channel … sending over the black and white data

and the B with the 0 channel overlayed over the white …because the black is already black … :slight_smile:

So when you slide the value … of the alpha the white gets a bit grayed… the value lowers … and you can control the multiplier this way …

Anyway :slight_smile: good luck !

but your way should work as well … because it works as a min / max of the values of the mask