What happens here is a common problem called z-fighting. Basically, it's two surface that are so close together that Blender doesn't know which one he should put on top of the other. It usually is very noticeable when the distance between the surfaces and the camera is very big compared to the distance between the two surfaces, so the further your camera is, more difficult it becomes for Blender to "see" which surface is on top of each other.
To fix it you can use the camera clipping (as they say here) or you can modify your objects in a way that the two surfaces are not too close.
The second one may not be an option for you so here is how you can fix it with the clipping thing :
Select your camera and go to the Properties Panel > Object Data Properties > Lens
:

There you have two settings Clip Start
and (Clip) End
. The Clip start
is defaulted to something like 0.01m
, increase it slightly to a few meters (around 5m
looks like a good value for me). This will reduce the z-fighting artifacts.
Just be aware that Clip Start
will make the objects close to the camera invisible so don't set it to high. Basically Clip Start
value to 5m
means that every object that are less than 5 meters away from the camera are going to be invisible. You just need to set it high enough to remove the z-fighting.
You have also Clipping options for the viewport :
Press N on the 3D viewport and go to the view tab :

This is what you see with the default 0.01
:

But if I set it just to 1
:

Just be aware that if you get close to the object with clipping set too high, you'll have this :
