Skip to content

PixiJS Filters & Shaders

Flixel-Pixi integrates directly with PixiJS v8's post-processing filter pipeline, providing FlxBlurFilter, FlxColorMatrixFilter, FlxDisplacementFilter, and custom FlxShaderFilter.


1. Built-in Filters

ts
import { FlxBlurFilter, FlxColorMatrixFilter } from 'flixel-pixi';

// 1. Motion/Gaussian Blur
const blur = new FlxBlurFilter({ strength: 4, quality: 3 });
this.player.filters = [blur];

// 2. Grayscale / Sepia Color Matrix
const colorMatrix = new FlxColorMatrixFilter();
colorMatrix.desaturate(); // Or .sepia(), .negative(), .brightness(1.5)
this.camera.filters = [colorMatrix];

2. Water / Heat Displacement Maps

ts
import { FlxDisplacementFilter } from 'flixel-pixi';

const waterFilter = new FlxDisplacementFilter(
  'assets/displacement_map.png',
  20,
);
this.background.filters = [waterFilter];

3. Custom GLSL / WGSL Shader Filters

ts
import { FlxShaderFilter } from 'flixel-pixi';

const crtShader = new FlxShaderFilter({
  gl: {
    fragment: `
      precision mediump float;
      in vec2 vTextureCoord;
      out vec4 finalColor;
      uniform sampler2D uTexture;
      uniform float uTime;

      void main() {
        vec2 uv = vTextureCoord;
        float scanline = sin(uv.y * 400.0 + uTime * 5.0) * 0.08;
        vec4 color = texture(uTexture, uv);
        finalColor = color - scanline;
      }
    `,
  },
  uniforms: {
    uTime: { value: 0 },
  },
});

this.camera.filters = [crtShader];

Released under the MIT License.