OK, I went ahead and made
r_usetileshades 2 the default. I'm curious how the change will be percieved in real situations. As I noted in the commit log, the new default mode
Quote
does not take a sector's visibility values into account for uniform
darkening of a texture. It is more faithful to classic with respect to
fog/visibility *distances*, but may be less so as far as the "tint" of the
texture due to visibility attenuation is concerned.
Fox, on 01 May 2014 - 10:40 AM, said:
Helixhorned, on 01 May 2014 - 02:10 AM, said:
models fog/visibility as linear fading with distance with a particular color. TX, I understood your last comment to mean that you're fine going forward with that?
It would be kinda of weird for me if non-black fog behavior was different, especially because you can have a fog that is 99% black yet would be different.
I should have said "models fog/visibility
exclusively as linear fading with distance with a particular color." Fading with distance (i.e. using glFog()) is what the OpenGL
normally do in the absence of per-pixel shade table lookups (as currently only implemented with Polymer's
r_pr_artmapping). What the original
r_usetileshades 1 does is that it basically splits the darkening due to a sector's visibility and puts a part of that as uniform texture attenuation, and the "remaining" part goes into the actual fragment-depth-dependent fogging. As a consequence, with r_usetileshades 1 fog can sometimes cut off much farther compared to classic, as seen on the earlier E1L1 air duct screenshots. (It still cuts off slightly farther with r_usetileshades 2, but only by a small constant factor.)
Quote
That just sector .filler with r_usenewshading 3 (r_usetileshades doesn't matter).
Ah, I see. It only now dawned to me what you meant. Yes, an object's shade also determines the fog parameters, and with linear fog, in particular the far cutoff distance. This is simply due to the OpenGL modes modeling fog after classic, and is easily seen in the
central palookup equation (or the inversion thereof). In r4460, I made an object's shade
not contribute to fog parameters if that fog comes indeed from a sector[].fogpal -- the fog calculation is done as if the shade were 0. I'm kind of happy with this special case for 'fogpal' because it differentiates it from setting the same pal as .floorpal on the sector.