SL-18190 Remove some (likely) superfluous color space conversions
parent
67c7a13647
commit
a63fcfc9d5
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue