I’ve eliminated z-fighting issues in the transparent areas of my shader by using the ‘discard’ keyword in the Fragment Shader to throw away the transparent areas. One side-effect of this is that there’s now no point using the smoothstep function to create the stripes, so I can do something much simpler. The downside is that I loose all antialiasing.
To fix this, I’ve decided to render the GLSL patch inside a Render In Image macro at twice the output size, then resized it back down again. The technique is apparently called ‘Supersampling’. It’s not as smooth as my smoothstep antialiassing, but it does a pretty good job.
The idea here is to produce an alternative, more solid-looking version of the shader.
The first screenshot shows the effect os supersampling on the edges the the mesh. It’s not perfect, but it’s gone a long way towards smoothing out the jaggies.