our client wants me to have some obscured 3D objects visible even if there's e.g. a building in front of it. Order independent transparency rendering techniques such as depth peeling are too costly when it involves a city model with hundreds of buildings.
So I was thinking to simply change the rendering style whenever the fragment of my obscured object would not pass the depth test.
But I have no idea how one would implement a depth test in the fragment shader and adapt the rendering style based on its outcome. Is it really necessary to first render the entire scene into an FBO with a texture attached as a depth buffer so that you can sample this depth texture later? This seems extremely costly to me, as it would involve another full geometry pass.