|
@@ -49,8 +49,6 @@ THREE.FXAAShader = {
|
|
|
"vec3 rgbSE = texture2D( tDiffuse, ( gl_FragCoord.xy + vec2( 1.0, 1.0 ) ) * resolution ).xyz;",
|
|
|
"vec4 rgbaM = texture2D( tDiffuse, gl_FragCoord.xy * resolution );",
|
|
|
"vec3 rgbM = rgbaM.xyz;",
|
|
|
- "float opacity = rgbaM.w;",
|
|
|
-
|
|
|
"vec3 luma = vec3( 0.299, 0.587, 0.114 );",
|
|
|
|
|
|
"float lumaNW = dot( rgbNW, luma );",
|
|
@@ -71,25 +69,20 @@ THREE.FXAAShader = {
|
|
|
"dir = min( vec2( FXAA_SPAN_MAX, FXAA_SPAN_MAX),",
|
|
|
"max( vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),",
|
|
|
"dir * rcpDirMin)) * resolution;",
|
|
|
-
|
|
|
- "vec3 rgbA = texture2D( tDiffuse, gl_FragCoord.xy * resolution + dir * ( 1.0 / 3.0 - 0.5 ) ).xyz;",
|
|
|
- "rgbA += texture2D( tDiffuse, gl_FragCoord.xy * resolution + dir * ( 2.0 / 3.0 - 0.5 ) ).xyz;",
|
|
|
- "rgbA *= 0.5;",
|
|
|
-
|
|
|
- "vec3 rgbB = texture2D( tDiffuse, gl_FragCoord.xy * resolution + dir * -0.5 ).xyz;",
|
|
|
- "rgbB += texture2D( tDiffuse, gl_FragCoord.xy * resolution + dir * 0.5 ).xyz;",
|
|
|
- "rgbB *= 0.25;",
|
|
|
- "rgbB += rgbA * 0.5;",
|
|
|
-
|
|
|
- "float lumaB = dot( rgbB, luma );",
|
|
|
+ "vec4 rgbA = (1.0/2.0) * (",
|
|
|
+ "texture2D(tDiffuse, gl_FragCoord.xy * resolution + dir * (1.0/3.0 - 0.5)) +",
|
|
|
+ "texture2D(tDiffuse, gl_FragCoord.xy * resolution + dir * (2.0/3.0 - 0.5)));",
|
|
|
+ "vec4 rgbB = rgbA * (1.0/2.0) + (1.0/4.0) * (",
|
|
|
+ "texture2D(tDiffuse, gl_FragCoord.xy * resolution + dir * (0.0/3.0 - 0.5)) +",
|
|
|
+ "texture2D(tDiffuse, gl_FragCoord.xy * resolution + dir * (3.0/3.0 - 0.5)));",
|
|
|
+ "float lumaB = dot(rgbB, vec4(luma, 0.0));",
|
|
|
|
|
|
"if ( ( lumaB < lumaMin ) || ( lumaB > lumaMax ) ) {",
|
|
|
|
|
|
- "gl_FragColor = vec4( rgbA, opacity );",
|
|
|
+ "gl_FragColor = rgbA;",
|
|
|
|
|
|
"} else {",
|
|
|
-
|
|
|
- "gl_FragColor = vec4( rgbB, opacity );",
|
|
|
+ "gl_FragColor = rgbB;",
|
|
|
|
|
|
"}",
|
|
|
|