SL-18190 Remove some (likely) superfluous color space conversions

meow-7.2.2
Dave Parks 2022-09-28 00:15:34 -05:00
parent 67c7a13647
commit a63fcfc9d5
3 changed files with 16 additions and 25 deletions

View File

@ -32,23 +32,6 @@ uniform int no_atmo;
vec3 srgb_to_linear(vec3 col);
vec3 linear_to_srgb(vec3 col);
vec3 atmosFragLightingLinear(vec3 light, vec3 additive, vec3 atten)
{
if (no_atmo == 1)
{
return light;
}
light = linear_to_srgb(light);
additive = linear_to_srgb(additive);
atten = linear_to_srgb(atten);
light *= atten.r;
light += additive;
return srgb_to_linear(light);
}
vec3 atmosFragLighting(vec3 light, vec3 additive, vec3 atten)
{
if (no_atmo == 1)
@ -60,6 +43,18 @@ vec3 atmosFragLighting(vec3 light, vec3 additive, vec3 atten)
return light * 2.0;
}
vec3 atmosFragLightingLinear(vec3 light, vec3 additive, vec3 atten)
{
if (no_atmo == 1)
{
return light;
}
light *= atten.r;
light += additive;
return light;
}
vec3 atmosLighting(vec3 light)
{
return atmosFragLighting(light, getAdditiveColor(), getAtmosAttenuation());

View File

@ -32,16 +32,15 @@ vec3 srgb_to_linear(vec3 col);
vec3 linear_to_srgb(vec3 col);
vec3 scaleSoftClipFragLinear(vec3 light)
{
{ // identical to non-linear version and that's probably close enough
if (no_atmo == 1)
{
return light;
}
light = linear_to_srgb(light);
//soft clip effect:
light = 1. - clamp(light, vec3(0.), vec3(1.));
light = 1. - pow(light, vec3(gamma)); // s/b inverted already CPU-side
return srgb_to_linear(light);
return light;
}
vec3 scaleSoftClipFrag(vec3 light)

View File

@ -49,12 +49,9 @@ vec3 atmosTransport(vec3 light)
vec3 fullbrightAtmosTransportFragLinear(vec3 light, vec3 additive, vec3 atten)
{
light = linear_to_srgb(light);
additive = linear_to_srgb(additive);
atten = linear_to_srgb(atten);
// same as non-linear version, probably fine
float brightness = dot(light.rgb * 0.5, vec3(0.3333)) + 0.1;
return srgb_to_linear(mix(atmosTransportFrag(light.rgb, additive, atten), light.rgb + additive, brightness * brightness));
return mix(atmosTransportFrag(light.rgb, additive, atten), light.rgb + additive, brightness * brightness);
}
vec3 fullbrightAtmosTransportFrag(vec3 light, vec3 additive, vec3 atten)