The 1112 shaders are broken with how they handle transparency. It might fix the nameplate issue, but it breaks most everything else. The proper way to handle it is with a simple data fix: add a spec map for the nameplates.
Okay. What kind of shinemap? Black, white or grey? With or without alpha channel? Transparent or opaque, if alpha channel should be there?
The thing is, with the obvious solution (black shinemap with black alpha), the issue is still there with the exception that the nameplate text is not as clearly visible, but the dark box is still visible at certain angle (it seems to me that light reflecting in 45 degree angle will cause the box syndrome to surface).
With a white shinemap with black alpha, the text is brighter and the black box becomes white.
With a gray shinemap with black alpha, the text is medium bright and the black box becomes gray.
White or no alpha channel makes the nameplate face act as a mirror. Opaque text and transparent background makes the text act as mirror and background will have the box appearing at certain angles.
There seems to be no way around making the nameplate face becoming opaque at some shade of gray, varying from black (no shinemap or black shinemap) to white (white shinemap).
By the way, even if certain kind of shinemap could be used to fix the issue (which doesn't seem to be happening according to my experimentation, since all combinations of shinemaps result in opaque box around text at some form or another), what kind of backward compatibility issues would be caused for those who dont, or can't, use GLSL and use fixed render pipeline instead?
Also, what kind of examples of handling transparency do those four shaders actually affect? I tried to look at any changes in fighter cockpits (since that's the most prominent usage of transparency in models) but I could see no changes compared between sdr1119[003] and a mod folder with other shaders from sdr1119[003] and the four shaders copied from sdr1112. Everything
seems to work similarly, except the nameplates work correctly.
Oh, and the reason that the reference shaders use a conditional return is that it tested much faster. With more complex models, using other, correct methods, you would get *****-slapped with a 40-60% performance hit. Compatibility was sacrificed for the sake of speed. Remember that the reference shaders were in development and testing for over 6 months. They were rewritten from scratch 4 times, with over a hundred iterations in between. Each and every single change was tested for instruction count, compatibility, visual quality, and performance.
Very well, I trust you know what you're talking about as far as technological detail goes, but as long as I do not see how exactly the older shaders break transparency otherwhere at least as spectacularly as the newer version breaks nameplates, I'm going to use the older four shaders even if they cause performance issues, and if trouble rises it's ugly head I know where the problem could be. The nameplates have, thus far, been the only visible issue I have noticed with the shader system, and even though I'm sure there are others, it doesn't really matter if I don't notice them...
