playcanvas
Version:
PlayCanvas WebGL game engine
27 lines (25 loc) • 977 B
JavaScript
var glslDilatePS = `
varying vec2 vUv0;
uniform sampler2D source;
uniform vec2 pixelOffset;
bool isUsed(vec4 pixel) {
return any(greaterThan(pixel.rgb, vec3(0.0)));
return pixel.a > 0.0;
}
void main(void) {
vec4 c = texture2DLod(source, vUv0, 0.0);
c = isUsed(c) ? c : texture2DLod(source, vUv0 - pixelOffset, 0.0);
c = isUsed(c) ? c : texture2DLod(source, vUv0 + vec2(0, -pixelOffset.y), 0.0);
c = isUsed(c) ? c : texture2DLod(source, vUv0 + vec2(pixelOffset.x, -pixelOffset.y), 0.0);
c = isUsed(c) ? c : texture2DLod(source, vUv0 + vec2(-pixelOffset.x, 0), 0.0);
c = isUsed(c) ? c : texture2DLod(source, vUv0 + vec2(pixelOffset.x, 0), 0.0);
c = isUsed(c) ? c : texture2DLod(source, vUv0 + vec2(-pixelOffset.x, pixelOffset.y), 0.0);
c = isUsed(c) ? c : texture2DLod(source, vUv0 + vec2(0, pixelOffset.y), 0.0);
c = isUsed(c) ? c : texture2DLod(source, vUv0 + pixelOffset, 0.0);
gl_FragColor = c;
}
`;
export { glslDilatePS as default };