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
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.
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.)