From 61280214ca860e8418a25298104c37b4fe02915d Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Fri, 24 May 2019 15:30:49 -0700 Subject: [PATCH] revert skybox color behavior --- libraries/graphics/src/graphics/skybox.slf | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libraries/graphics/src/graphics/skybox.slf b/libraries/graphics/src/graphics/skybox.slf index 231c1f4140..801fc33c28 100755 --- a/libraries/graphics/src/graphics/skybox.slf +++ b/libraries/graphics/src/graphics/skybox.slf @@ -26,6 +26,14 @@ layout(location=0) in vec3 _normal; layout(location=0) out vec4 _fragColor; void main(void) { - vec3 skyboxColor = texture(cubeMap, normalize(_normal)).rgb; - _fragColor = vec4(mix(skybox.color.rgb, skyboxColor, skybox.color.a), 1.0); + // FIXME: For legacy reasons, when skybox.color.a is 0.5, this is equivalent to: + // skyboxColor * skyboxTexel + // It should actually be: + // mix(skyboxColor, skyboxTexel, skybox.color.a) + // and the blend factor should be user controlled + + vec3 skyboxTexel = texture(cubeMap, normalize(_normal)).rgb; + vec3 skyboxColor = skybox.color.rgb; + _fragColor = vec4(mix(vec3(1.0), skyboxTexel, float(skybox.color.a > 0.0)) * + mix(vec3(1.0), skyboxColor, float(skybox.color.a < 1.0)), 1.0); }