I am creating a game in which you will fly to other planets.
I have a model of the Earth, but when you fly high off then graphic bugs apear - blinking colors of ground and water . Planet consists of two objects - the ground and the sphere of water which is smaller than the ground. because there where the terrain is lower it is water .
Here I put a 4 screenshots and please help!
When i standing on ground everything is ok.
Hi!
It look like good ol’ Z-fight for me.
I see that your far plane is set to 10000000000 units which is very very very faaaar awaaaayyy. 
Depending on the platform, the depthbuffer has a precision of 16bits or 24bits which leads to discontinuities and artifacts if the range is too big.
the reason why you experience this problem only when you get far is that the depthbuffer is not distributed linearly but more “exponentially” which means that you have more precision when you get closer to the camera.
Instead of trying to render the whole universe, try some trick like impostors or scaling the objects. 
Cheerz!
You can also try manually changing the near and far clipping distances. If you’re far away push the near distance further away and bring it closer as you get closer. Some games will also effectively render each planet with a different camera with each camera’s near and far planes set to the distances relevant for that planet, but multiple cameras can be a little slow in Unity.
Another method for improving depth buffer precision is using inverse depth, which many planet / solar system / universe scale game engines use. It’s not something you can easily add on your own, but Unity is adding it in a future patch. It does only work for DirectX though. Logarithmic depth is also used by some of those kinds of game engines, but again it’s not something easily added on your own.
1 Like