Просмотр исходного кода

VideoTexture: Fix color space when using with Scene.background. (#23782)

Michael Herzog 3 лет назад
Родитель
Сommit
1b7820221b
1 измененных файлов с 8 добавлено и 0 удалено
  1. 8 0
      src/renderers/shaders/ShaderLib/background.glsl.js

+ 8 - 0
src/renderers/shaders/ShaderLib/background.glsl.js

@@ -20,6 +20,14 @@ void main() {
 
 	gl_FragColor = texture2D( t2D, vUv );
 
+	#ifdef DECODE_VIDEO_TEXTURE
+
+		// inline sRGB decode (TODO: Remove this code when https://crbug.com/1256340 is solved)
+
+		gl_FragColor = vec4( mix( pow( gl_FragColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), gl_FragColor.rgb * 0.0773993808, vec3( lessThanEqual( gl_FragColor.rgb, vec3( 0.04045 ) ) ) ), gl_FragColor.w );
+
+	#endif
+
 	#include <tonemapping_fragment>
 	#include <encodings_fragment>