Is a high rendering order and Zwrite Off enough to ensure that an object is always visible?

Hi, I just started out with reading about shaders in Unity. I was trying to make a mesh always be visible, even if it is behind other meshes. To make this happen, I created two spheres in my scene. For the one further away from the camera (higher depth value), in my custom shader, I set Zwrite Off, and the Rendering queue as Overlay. For the sphere closer to the camera, I set Zwrite On, Ztest Lequal and the rendering queue as Geometry. The sphere further in the scene is occluded by the one in front.

From what I understand, if the sphere further in the scene is not writing to the Z buffer and is being drawn after the sphere in front, it should be visible at all times. What am I interpreting wrong?

If you want something to always be in front of everything though, you can use ZTest Always. This means that those polygons will always pass the depth test (or Z test, as it’s called). The default for the ZTest is “ZTest LEqual”, meaning ordinarily, stuff will be drawn only if their distance from you is less than or equal to other things that would be rendered at that same pixel on the screen (So you see things that are closer to you, and they cover things that are farther away from you).

Currently, I don’t really know what ZWrite is used/useful for lol >.<