Z Fighting on actors with complex world position offset

Hi Guys,

Has anyone experienced the issues in the attached image?

On materials with complex inputs into the world position offset I can sometimes get this flickering black Z fighting artefact.

From what I understand this is due to the way the renderer reads 2 versions of the data that have a very small difference. Through multiplying these values that difference gets magnified to the point that it causes these artefacts.

So it’s basically z fighting with a shaded and unshaded version of itself.

Has anyone found a way to prevent these artefacts from showing up?

Hi, I know this question is old, but I recently ran into this problem at work when working with very complex world position offset using two transforms from local space to absolute world position ;

My theory is this is due to floating point precision not giving the exact same result for two -sided materials for each side. So it will Z fight with itself. I was able to sort of remedy this issue by multiplying up a decimals, using round, then multiplying back down. If you really don’t care about the precision you could probably just round the result.

2 Likes

I had this issue even without two sided materials but I solved it exactly the same (multiply by 10, round, divide by 10, somewhere I don’t need an extra precision offset), thanks!