@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
50 lines (43 loc) • 1.74 kB
JavaScript
import { NoBlending, ShaderMaterial, Vector2 } from "three";
import { ScreenSpaceQuadShader } from "../../../shaders/ScreenSpaceQuadShader.js";
export function makeBlurShader_9(){
return new ShaderMaterial({
uniforms: {
tDiffuse: {
type: 't',
value: null
},
resolution: {
type: 'v2',
value: new Vector2(1, 1)
}
},
blending: NoBlending,
light: false,
fog: false,
depthTest: false,
depthWrite: false,
transparent: true,
vertexColors: false,
vertexShader: ScreenSpaceQuadShader.vertexShader(),
fragmentShader: `
uniform sampler2D tDiffuse;
uniform vec2 resolution;
varying vec2 vUv;
vec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) {
vec4 color = vec4(0.0);
vec2 off1 = vec2(1.3846153846) * direction;
vec2 off2 = vec2(3.2307692308) * direction;
color += texture2D(image, uv) * 0.2270270270;
color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162;
color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162;
color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703;
color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703;
return color;
}
void main(){
gl_FragColor = blur9(tDiffuse, vUv, resolution, vec2(1,0));
}
`
});
}