If you recall when investigating this I explained that the progressive taxi arrows were drawn with the following base texture on the left.
And that when transparency was included it looked like the right – so most of the red area is 100% transparent.
The DX9 progressive taxi uses the arrow head which gives us yellow arrows outlined in red. The problem with DX10 isn’t that the arrows aren’t drawn but that the wrong portion of the texture is used so that they are red and 100% transparent and hence invisible!!
The solution that I came up with was to disable the alpha blending in the shader such that the triangles appeared as opaque red.
Now at the time I pointed out that if the texture could be identified it might be possible to apply a different fix by changing the transparency of the portion of the texture that DX10 uses. I have been asked subsequently if it was possible to change the colour of the DX10 arrows so I had a dig around.
By a combination of using the fsx.cfg setting
and renaming likely directories and then textures I tracked it down to be a texture called GEN_game_yellow_arrow_BIG.dds in FSX_DIR\scenery\global\texture.
I then experimented by replacing it with a texture split into a red and black half to see what colour the arrows appeared and hence which half the coordinates were in. I then subdivided this and repeated. Now this should have been a simple process but the arrow often seemed to go a strange mid colour. What I should have done is considered what the most likely error that ACES could have made. It turns out that DX10 samples texel (0,0). Now the filtering that goes on in the sampler complicates things because it doesn’t return the colour of that texel – it blends it with surrounding texels – which in the case of an edge uses wrapping to the far edge – hence the reason that I struggled!
Anyway having found it it’s the relatively easy to fix. I used DXTBmp. For an editor I used a LE version of PhotoShop as I couldn’t get paint to work with the transparency (alpha).
What I did was edit a copy of the texture and replace all 4 corners with yellow squares thus
Then I edited the alpha channel and set the transparency of the corner squares to be the same (approx 75%) as the main yellow triangle.
So finally I replaced the texture (having taken a backup!) with my new texture and disabled my progressive taxi fix by editing PatchOptions.txt in ShadersHLSL\general and setting the patch as 0 (OFF)
// Bodge fix for progressive taxi – they are red not yellow mind
#define PROG_TAXI_PATCH 0
I recompiled the shaders and here is the result.