You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
1.6 KiB
28 lines
1.6 KiB
// All material copyright Esri, All Rights Reserved, unless otherwise specified. |
|
// See https://js.arcgis.com/4.30/esri/copyright.txt for details. |
|
//>>built |
|
define(["exports","../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl","../views/3d/webgl-engine/core/shaderModules/interfaces","../views/3d/webgl-engine/core/shaderModules/ShaderBuilder","../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform"],function(c,f,g,h,d){function e(){const a=new h.ShaderBuilder;a.include(f.ScreenSpacePass);a.fragment.uniforms.add(new d.Texture2DPassUniform("blendWeightsTexture",b=>b.inputTexture),new d.Texture2DPassUniform("colorTexture",b=>b.color)); |
|
a.fragment.code.add(g.glsl`void main() { |
|
vec2 resolution = 1.0 / vec2(textureSize(colorTexture, 0)); |
|
vec4 offsets = vec4(uv.x + resolution.x, uv.y, uv.x, uv.y - resolution.y); |
|
vec4 a; |
|
a.rb = texture(blendWeightsTexture, uv).rb; |
|
a.g = texture(blendWeightsTexture, offsets.zw).g; |
|
a.a = texture(blendWeightsTexture, offsets.xy).a; |
|
if ( dot(a, vec4(1.0)) < 1e-5 ) { |
|
fragColor = texture( colorTexture, uv, 0.0 ); |
|
} else { |
|
vec2 offset; |
|
offset.x = a.a > a.b ? a.a : -a.b; |
|
offset.y = a.g > a.r ? -a.g : a.r; |
|
if ( abs( offset.x ) > abs( offset.y )) { |
|
offset.y = 0.0; |
|
} else { |
|
offset.x = 0.0; |
|
} |
|
vec4 C = texture( colorTexture, uv, 0.0 ); |
|
vec4 Cop = texture( colorTexture, uv + sign( offset ) * resolution.xy, 0.0 ); |
|
float s = abs( offset.x ) > abs( offset.y ) ? abs( offset.x ) : abs( offset.y ); |
|
fragColor = mix(C, Cop, s); |
|
} |
|
}`);return a}const k=Object.freeze(Object.defineProperty({__proto__:null,build:e},Symbol.toStringTag,{value:"Module"}));c.Blur=k;c.build=e}); |