Whilst testing my Shader fix for taxiways I noticed that at a couple of airports there were some minor issues with chain fences.
An example of this is Friday Harbor. Here are two views at fractionally different angles
The fence is opaque and curiously it changes from opaque to transparent very sharply as you change the viewing angle.
The Intel GPA is a superb tool by the way and has some excellent features. If you select the Entire Frame it show you all the textures used. If you then select a texture and right click you can then drill down to the draws that used that texture. This makes it a breeze to find the drawcall that drew the chain fence.
Whats immediately obvious is that when its opaque it sets the depth stencil state to NULL three times and does exactly the same thing with the blend state. When its transparent it sets them to NULL once and to an actual Blend State and Depth Stencil the other two times.
So this seems a very similar issue. Whether its fixable depends on whether the shader is used for anything else.
I have to say that this seems a very puzzling bug! It seems like it is testing the angle and doing it deliberately. It may be that the idea was for small transparent objects seen almost sideways on to be opaque – but if so they didn’t consider very long objects like fences – such a test should be done in the shader per pixel not in the C++ code.