Tessellation Material flickering 4.11.2

Hi there!

I stumbled upon a weird behavior here:

It happens when I have a couple of meshes with vertex paint materials with tessellation. As you move the viewport and in runtime you get some crazy flickering / disappearing meshes

Haven’t got the time to test with previous versions, I’m running 4.11.2

Cheers
Luke

Hi Luke,

I tried to reproduce but had no luck. Can you please provide the following to proceed.

  • The full material setup that you’re using for your tessellation material
  • Any steps that were used for the vertex painting.
  • Can you reproduce this in a blank project or is this only in your personal project?
  • Can you make a copy of your project and try this in 4.12 Preview release to see if the issue is still occurring?
  • If you have a sample project that can recreate this issue that would be helpful but not entirely necessary at this point.

Thank you!

Tim

Hi Tim! So sorry I wasn’t able to get my hands on this last week. I’ll do my best to have the results by tomorrow. Thanks!! Luke

No rush. We aren’t typically here over the weekend. Earliest I would be able to look would be Monday. Thanks!

Well, it seems I’m not being able to reproduce it again, maybe something in the project changed and it ‘fixed it’. It’s really weird. If I stumble on the same bug again, I’ll try to catch it and debug it properly. Until then, I’d just flag it as false positive. Thanks Tim!

Just encountered the same weird behavior in 4.14.1
I was able to reproduce it in an empty project: DemoProject
The effect increases with higher WorldDisplacement values and when looking at it in a flat angle.
Disabling Occlusion Culling fixes this but I want to keep Occlusion Culling enabled for obvious reasons.

What you’re seeing here is intended behavior, while undesirable it’s the way occlusion culling currently works.

The meshes bounding box is being occluded when the tessellation rises so it occludes the bounding box of the mesh behind it. The bounding box does not adjust when the tessellation grows like this.

So you have a few options really:

  • Disable Occlusion Culling, which I don’t recommend!
  • Adjust the Bounding box in the Static Mesh Editor to be slightly larger or use the level details panel and adjust the bounding scale up slightly until the issue doesn’t persist any longer.
  • Lastly, enable r.HZBOcclusion 1. This method of occlusion uses an approximation of the bounds rather than strictly using the bounding box/sphere for occlusion. This can help in these types of situations, but may also bring up some other occlusion issues where things aren’t occluded that should be. It’s something to be aware of and to find the best trades offs for your needs.

-Tim

1 Like

Thank you very much for the quick response.
I’m still curious as to why the assets are flickering when the camera is not moving instead of just being invisible/occluded every frame until you look at them in another angle.

I found editing the bounds’ extensions for the meshes that have this behavior to be the easiest way while having practically no drawbacks. (Had to do this for a perfectly flat plane only.)

Setting the static mesh’s bounding box to be slightly larger than the largest tessellation geometry worked for me. Thanks, Tim!

Another two years later, just wanted to say thanks! Excellent explanation. Extending the bounding box did the trick.

1 Like