or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

animation.mdapplication.mdassets.mddisplay-objects.mdfilters.mdgraphics.mdindex.mdinteraction.mdmath.mdsprites-textures.mdtext.mdutilities.md

filters.mddocs/

0

# Filters & Effects

1

2

WebGL shader-based post-processing effects system with built-in filters and support for custom shaders. Filters provide GPU-accelerated visual effects that can be applied to any display object.

3

4

## Capabilities

5

6

### Base Filter Class

7

8

The foundation for all WebGL filters.

9

10

```typescript { .api }

11

/**

12

* Base filter class for WebGL post-processing effects

13

*/

14

class Filter {

15

/** Vertex shader source */

16

vertexSrc: string;

17

/** Fragment shader source */

18

fragmentSrc: string;

19

/** Uniform values */

20

uniforms: any;

21

/** Filter enabled state */

22

enabled: boolean;

23

/** Filter resolution */

24

resolution: number;

25

/** Multisample level */

26

multisample: MSAA_QUALITY;

27

/** Padding around filter area */

28

padding: number;

29

/** Auto-fit filter to bounds */

30

autoFit: boolean;

31

/** Legacy behavior */

32

legacy: boolean;

33

34

constructor(vertexSrc?: string, fragmentSrc?: string, uniforms?: any);

35

36

/**

37

* Apply filter

38

* @param filterManager - Filter system

39

* @param input - Input render texture

40

* @param output - Output render texture

41

* @param clearMode - Clear mode

42

*/

43

apply(filterManager: FilterSystem, input: RenderTexture, output: RenderTexture, clearMode?: CLEAR_MODES): void;

44

}

45

```

46

47

### Built-in Filters

48

49

Ready-to-use filters for common effects.

50

51

```typescript { .api }

52

/**

53

* Blur filter for gaussian blur effects

54

*/

55

class BlurFilter extends Filter {

56

/** Blur amount */

57

blur: number;

58

/** Horizontal blur */

59

blurX: number;

60

/** Vertical blur */

61

blurY: number;

62

/** Blur quality */

63

quality: number;

64

65

constructor(strength?: number, quality?: number, resolution?: number, kernelSize?: number);

66

}

67

68

/**

69

* Color matrix filter for color transformations

70

*/

71

class ColorMatrixFilter extends Filter {

72

/** Color matrix */

73

matrix: number[];

74

/** Alpha value */

75

alpha: number;

76

77

constructor();

78

79

/** Adjust brightness */

80

brightness(b: number, multiply?: boolean): void;

81

82

/** Adjust contrast */

83

contrast(amount: number, multiply?: boolean): void;

84

85

/** Adjust saturation */

86

saturate(amount?: number, multiply?: boolean): void;

87

88

/** Desaturate (grayscale) */

89

desaturate(): void;

90

91

/** Adjust hue */

92

hue(rotation: number, multiply?: boolean): void;

93

}

94

95

/**

96

* Alpha filter for transparency effects

97

*/

98

class AlphaFilter extends Filter {

99

/** Alpha value */

100

alpha: number;

101

102

constructor(alpha?: number);

103

}

104

105

/**

106

* Displacement filter for distortion effects

107

*/

108

class DisplacementFilter extends Filter {

109

/** Displacement sprite */

110

maskSprite: Sprite;

111

/** Displacement scale */

112

scale: Point;

113

114

constructor(sprite: Sprite, scale?: number);

115

}

116

117

/**

118

* FXAA filter for anti-aliasing

119

*/

120

class FXAAFilter extends Filter {

121

constructor();

122

}

123

124

/**

125

* Noise filter for noise effects

126

*/

127

class NoiseFilter extends Filter {

128

/** Noise amount */

129

noise: number;

130

/** Random seed */

131

seed: number;

132

133

constructor(noise?: number, seed?: number);

134

}

135

```

136

137

**Usage Examples:**

138

139

```typescript

140

import { BlurFilter, ColorMatrixFilter, Sprite } from "pixi.js";

141

142

// Apply blur filter

143

const sprite = Sprite.from('image.png');

144

const blurFilter = new BlurFilter();

145

blurFilter.blur = 10;

146

sprite.filters = [blurFilter];

147

148

// Animate blur (requires TickerPlugin)

149

// app.ticker.add(() => {

150

// blurFilter.blur = Math.sin(Date.now() * 0.005) * 5 + 5;

151

// });

152

153

// Color effects

154

const colorFilter = new ColorMatrixFilter();

155

colorFilter.brightness(1.5, false);

156

colorFilter.contrast(1.2, false);

157

colorFilter.saturate(0.8, false);

158

sprite.filters = [colorFilter];

159

160

// Multiple filters

161

sprite.filters = [blurFilter, colorFilter];

162

```