modern-canvas
Version:
A JavaScript WebGL rendering engine. only the ESM.
23 lines (22 loc) • 2.04 kB
TypeScript
import type { GlRenderer } from '../../core';
import type { EffectProperties, Node, Viewport } from '../main';
import { Effect } from '../main/Effect';
export interface KawaseBlurEffectProperties extends EffectProperties {
strength: number;
quality: number;
pixelSize: [number, number];
clamp: boolean;
}
export declare const frag = "varying vec2 vUv;\nuniform sampler2D sampler;\nuniform vec2 uOffset;\n\nvoid main(void) {\n vec4 color = vec4(0.0);\n color += texture2D(sampler, vec2(vUv.x - uOffset.x, vUv.y + uOffset.y));\n color += texture2D(sampler, vec2(vUv.x + uOffset.x, vUv.y + uOffset.y));\n color += texture2D(sampler, vec2(vUv.x + uOffset.x, vUv.y - uOffset.y));\n color += texture2D(sampler, vec2(vUv.x - uOffset.x, vUv.y - uOffset.y));\n color *= 0.25;\n gl_FragColor = color;\n}";
export declare const clampFrag = "precision highp float;\nvarying vec2 vUv;\nuniform sampler2D sampler;\nuniform vec2 uOffset;\nuniform vec4 uInputClamp;\nvoid main(void) {\n vec4 color = vec4(0.0);\n color += texture2D(sampler, clamp(vec2(vUv.x - uOffset.x, vUv.y + uOffset.y), uInputClamp.xy, uInputClamp.zw));\n color += texture2D(sampler, clamp(vec2(vUv.x + uOffset.x, vUv.y + uOffset.y), uInputClamp.xy, uInputClamp.zw));\n color += texture2D(sampler, clamp(vec2(vUv.x + uOffset.x, vUv.y - uOffset.y), uInputClamp.xy, uInputClamp.zw));\n color += texture2D(sampler, clamp(vec2(vUv.x - uOffset.x, vUv.y - uOffset.y), uInputClamp.xy, uInputClamp.zw));\n color *= 0.25;\n gl_FragColor = color;\n}";
export declare class KawaseBlurEffect extends Effect {
strength: number;
quality: number;
pixelSize: [number, number];
protected _kernels: number[];
constructor(properties?: Partial<KawaseBlurEffectProperties>, children?: Node[]);
protected _updateProperty(key: string, value: any, oldValue: any): void;
/** Auto generate kernels by blur & quality */
protected _generateKernels(): void;
apply(renderer: GlRenderer, viewport: Viewport): void;
}