I've noticed very strange behavior of Unity 3.5 plane rendering:
You may see on this screenshot that all objects are above the plane at the same distance
Here you may see that a number of objects isn't rendered, even as they are between the plane and the camera
Here you may see that it depends on the angle between the camera and the plane
Why does this happen? Is it a bug or a feature? Can it be fixed somehow?
At a guess, this could be a depth-buffer accuracy problem. If your camera's far clip distance is very large then the accuracy isn't able to cope with objects too close together. Try pulling back your camera's far clipping plane in the inspector to be just as much as you need, and see if that makes a difference.
I have the exact same problem doing a lo-fi first person shooter project with a lot of planes. Indeed, the more the plane is parallel to the camera's forward, the more it seems to happen. But in my case, it's not the case all the time. Some plane are immune. I sould investigate more.
This is a quirky handling of plane rendering and I can't find any solution for the moment.
This sounds more like a depth-sorting issue then. The sorting is done (presumably) based on distance from camera to the center of the object. If the camera is tilted, then objects above the cutoff line could be further from the camera than the world, and so drawn before the world, and have the world drawn over the top.
That would imply that either your world pixel shader isn't depth-testing, or your satellites aren't z-writing.
I'd check that everything's in the correct render queue, and that the culling settings are correct for all your shaders.
(I'm no shader/graphics expert, so I could be way off the mark).
answered Jul 18, 2012 at 08:46 AM