@luma.gl/effects 9.2.6 → 9.3.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +2686 -644
- package/dist/dist.min.js +10 -9
- package/dist/index.cjs +753 -302
- package/dist/index.cjs.map +3 -3
- package/dist/passes/postprocessing/fxaa/fxaa.d.ts +1 -0
- package/dist/passes/postprocessing/fxaa/fxaa.d.ts.map +1 -1
- package/dist/passes/postprocessing/fxaa/fxaa.js +287 -0
- package/dist/passes/postprocessing/fxaa/fxaa.js.map +1 -1
- package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.d.ts +2 -2
- package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.js +6 -7
- package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.js.map +1 -1
- package/dist/passes/postprocessing/image-adjust-filters/denoise.d.ts +2 -2
- package/dist/passes/postprocessing/image-adjust-filters/denoise.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-adjust-filters/denoise.js +32 -24
- package/dist/passes/postprocessing/image-adjust-filters/denoise.js.map +1 -1
- package/dist/passes/postprocessing/image-adjust-filters/huesaturation.d.ts +2 -2
- package/dist/passes/postprocessing/image-adjust-filters/huesaturation.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-adjust-filters/huesaturation.js +26 -33
- package/dist/passes/postprocessing/image-adjust-filters/huesaturation.js.map +1 -1
- package/dist/passes/postprocessing/image-adjust-filters/noise.d.ts +2 -2
- package/dist/passes/postprocessing/image-adjust-filters/noise.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-adjust-filters/noise.js +10 -9
- package/dist/passes/postprocessing/image-adjust-filters/noise.js.map +1 -1
- package/dist/passes/postprocessing/image-adjust-filters/sepia.d.ts +2 -2
- package/dist/passes/postprocessing/image-adjust-filters/sepia.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-adjust-filters/sepia.js +12 -11
- package/dist/passes/postprocessing/image-adjust-filters/sepia.js.map +1 -1
- package/dist/passes/postprocessing/image-adjust-filters/vibrance.d.ts +2 -2
- package/dist/passes/postprocessing/image-adjust-filters/vibrance.js +10 -10
- package/dist/passes/postprocessing/image-adjust-filters/vignette.d.ts +2 -2
- package/dist/passes/postprocessing/image-adjust-filters/vignette.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-adjust-filters/vignette.js +11 -15
- package/dist/passes/postprocessing/image-adjust-filters/vignette.js.map +1 -1
- package/dist/passes/postprocessing/image-blur-filters/tiltshift.d.ts +3 -3
- package/dist/passes/postprocessing/image-blur-filters/tiltshift.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-blur-filters/tiltshift.js +36 -18
- package/dist/passes/postprocessing/image-blur-filters/tiltshift.js.map +1 -1
- package/dist/passes/postprocessing/image-blur-filters/triangleblur.d.ts +3 -3
- package/dist/passes/postprocessing/image-blur-filters/triangleblur.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-blur-filters/triangleblur.js +27 -18
- package/dist/passes/postprocessing/image-blur-filters/triangleblur.js.map +1 -1
- package/dist/passes/postprocessing/image-blur-filters/zoomblur.d.ts +3 -3
- package/dist/passes/postprocessing/image-blur-filters/zoomblur.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-blur-filters/zoomblur.js +22 -13
- package/dist/passes/postprocessing/image-blur-filters/zoomblur.js.map +1 -1
- package/dist/passes/postprocessing/image-fun-filters/colorhalftone.d.ts +2 -2
- package/dist/passes/postprocessing/image-fun-filters/colorhalftone.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-fun-filters/colorhalftone.js +20 -18
- package/dist/passes/postprocessing/image-fun-filters/colorhalftone.js.map +1 -1
- package/dist/passes/postprocessing/image-fun-filters/dotscreen.d.ts +2 -2
- package/dist/passes/postprocessing/image-fun-filters/dotscreen.js +12 -12
- package/dist/passes/postprocessing/image-fun-filters/edgework.d.ts +3 -3
- package/dist/passes/postprocessing/image-fun-filters/edgework.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-fun-filters/edgework.js +85 -14
- package/dist/passes/postprocessing/image-fun-filters/edgework.js.map +1 -1
- package/dist/passes/postprocessing/image-fun-filters/hexagonalpixelate.d.ts +2 -2
- package/dist/passes/postprocessing/image-fun-filters/hexagonalpixelate.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-fun-filters/hexagonalpixelate.js +35 -23
- package/dist/passes/postprocessing/image-fun-filters/hexagonalpixelate.js.map +1 -1
- package/dist/passes/postprocessing/image-fun-filters/ink.d.ts +2 -2
- package/dist/passes/postprocessing/image-fun-filters/ink.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-fun-filters/ink.js +26 -17
- package/dist/passes/postprocessing/image-fun-filters/ink.js.map +1 -1
- package/dist/passes/postprocessing/image-fun-filters/magnify.d.ts +2 -2
- package/dist/passes/postprocessing/image-fun-filters/magnify.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-fun-filters/magnify.js +23 -13
- package/dist/passes/postprocessing/image-fun-filters/magnify.js.map +1 -1
- package/dist/passes/postprocessing/image-warp-filters/bulgepinch.d.ts +3 -3
- package/dist/passes/postprocessing/image-warp-filters/bulgepinch.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-warp-filters/bulgepinch.js +28 -14
- package/dist/passes/postprocessing/image-warp-filters/bulgepinch.js.map +1 -1
- package/dist/passes/postprocessing/image-warp-filters/swirl.d.ts +3 -3
- package/dist/passes/postprocessing/image-warp-filters/swirl.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-warp-filters/swirl.js +21 -16
- package/dist/passes/postprocessing/image-warp-filters/swirl.js.map +1 -1
- package/dist/passes/postprocessing/image-warp-filters/warp.d.ts +1 -1
- package/dist/passes/postprocessing/image-warp-filters/warp.d.ts.map +1 -1
- package/dist/passes/postprocessing/image-warp-filters/warp.js +9 -4
- package/dist/passes/postprocessing/image-warp-filters/warp.js.map +1 -1
- package/package.json +4 -5
- package/src/passes/postprocessing/fxaa/fxaa.ts +288 -0
- package/src/passes/postprocessing/image-adjust-filters/brightnesscontrast.ts +6 -7
- package/src/passes/postprocessing/image-adjust-filters/denoise.ts +34 -26
- package/src/passes/postprocessing/image-adjust-filters/huesaturation.ts +28 -35
- package/src/passes/postprocessing/image-adjust-filters/noise.ts +10 -9
- package/src/passes/postprocessing/image-adjust-filters/sepia.ts +12 -11
- package/src/passes/postprocessing/image-adjust-filters/vibrance.ts +10 -10
- package/src/passes/postprocessing/image-adjust-filters/vignette.ts +11 -15
- package/src/passes/postprocessing/image-blur-filters/tiltshift.ts +38 -20
- package/src/passes/postprocessing/image-blur-filters/triangleblur.ts +27 -18
- package/src/passes/postprocessing/image-blur-filters/zoomblur.ts +23 -14
- package/src/passes/postprocessing/image-fun-filters/colorhalftone.ts +20 -18
- package/src/passes/postprocessing/image-fun-filters/dotscreen.ts +12 -12
- package/src/passes/postprocessing/image-fun-filters/edgework.ts +86 -15
- package/src/passes/postprocessing/image-fun-filters/hexagonalpixelate.ts +39 -27
- package/src/passes/postprocessing/image-fun-filters/ink.ts +26 -17
- package/src/passes/postprocessing/image-fun-filters/magnify.ts +23 -13
- package/src/passes/postprocessing/image-warp-filters/bulgepinch.ts +28 -14
- package/src/passes/postprocessing/image-warp-filters/swirl.ts +21 -16
- package/src/passes/postprocessing/image-warp-filters/warp.ts +9 -4
|
@@ -6,41 +6,55 @@ import type {ShaderPass} from '@luma.gl/shadertools';
|
|
|
6
6
|
import {warp} from './warp';
|
|
7
7
|
|
|
8
8
|
const source = /* wgsl */ `\
|
|
9
|
-
|
|
9
|
+
struct bulgePinchUniforms {
|
|
10
|
+
center: vec2f,
|
|
10
11
|
radius: f32,
|
|
11
12
|
strength: f32,
|
|
12
|
-
center: vec2f,
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
@group(0) @binding(
|
|
15
|
+
@group(0) @binding(auto) var<uniform> bulgePinch: bulgePinchUniforms;
|
|
16
16
|
|
|
17
|
-
fn bulgePinch_warp(
|
|
18
|
-
coord
|
|
19
|
-
|
|
17
|
+
fn bulgePinch_warp(coordIn: vec2f, texCenter: vec2f) -> vec2f {
|
|
18
|
+
var coord = coordIn - texCenter;
|
|
19
|
+
let distance = length(coord);
|
|
20
20
|
if (distance < bulgePinch.radius) {
|
|
21
|
-
|
|
21
|
+
let percent = distance / bulgePinch.radius;
|
|
22
|
+
let safeDistance = max(distance, 0.00001);
|
|
22
23
|
if (bulgePinch.strength > 0.0) {
|
|
23
|
-
coord *= mix(
|
|
24
|
+
coord *= mix(
|
|
25
|
+
1.0,
|
|
26
|
+
smoothstep(0.0, bulgePinch.radius / safeDistance, percent),
|
|
27
|
+
bulgePinch.strength * 0.75
|
|
28
|
+
);
|
|
24
29
|
} else {
|
|
25
|
-
coord *= mix(
|
|
30
|
+
coord *= mix(
|
|
31
|
+
1.0,
|
|
32
|
+
pow(percent, 1.0 + bulgePinch.strength * 0.75) * bulgePinch.radius / safeDistance,
|
|
33
|
+
1.0 - percent
|
|
34
|
+
);
|
|
26
35
|
}
|
|
27
36
|
}
|
|
28
37
|
coord += texCenter;
|
|
29
38
|
return coord;
|
|
30
39
|
}
|
|
31
40
|
|
|
32
|
-
fn bulgePinch_sampleColor(
|
|
33
|
-
|
|
41
|
+
fn bulgePinch_sampleColor(
|
|
42
|
+
sourceTexture: texture_2d<f32>,
|
|
43
|
+
sourceTextureSampler: sampler,
|
|
44
|
+
texSize: vec2f,
|
|
45
|
+
texCoord: vec2f
|
|
46
|
+
) -> vec4f {
|
|
47
|
+
var coord = texCoord * texSize;
|
|
34
48
|
coord = bulgePinch_warp(coord, bulgePinch.center * texSize);
|
|
35
|
-
return warp_sampleColor(
|
|
49
|
+
return warp_sampleColor(sourceTexture, sourceTextureSampler, texSize, coord);
|
|
36
50
|
}
|
|
37
51
|
`;
|
|
38
52
|
|
|
39
53
|
const fs = /* glsl */ `\
|
|
40
|
-
uniform bulgePinchUniforms {
|
|
54
|
+
layout(std140) uniform bulgePinchUniforms {
|
|
55
|
+
vec2 center;
|
|
41
56
|
float radius;
|
|
42
57
|
float strength;
|
|
43
|
-
vec2 center;
|
|
44
58
|
} bulgePinch;
|
|
45
59
|
|
|
46
60
|
vec2 bulgePinch_warp(vec2 coord, vec2 texCenter) {
|
|
@@ -6,23 +6,23 @@ import type {ShaderPass} from '@luma.gl/shadertools';
|
|
|
6
6
|
import {warp} from './warp';
|
|
7
7
|
|
|
8
8
|
const source = /* wgsl */ `\
|
|
9
|
-
|
|
9
|
+
struct swirlUniforms {
|
|
10
|
+
center: vec2f,
|
|
10
11
|
radius: f32,
|
|
11
12
|
angle: f32,
|
|
12
|
-
center: vec2f,
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
@group(0) @binding(
|
|
15
|
+
@group(0) @binding(auto) var<uniform> swirl: swirlUniforms;
|
|
16
16
|
|
|
17
|
-
fn swirl_warp(
|
|
18
|
-
coord
|
|
19
|
-
|
|
17
|
+
fn swirl_warp(coordIn: vec2f, texCenter: vec2f) -> vec2f {
|
|
18
|
+
var coord = coordIn - texCenter;
|
|
19
|
+
let distance = length(coord);
|
|
20
20
|
if (distance < swirl.radius) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
coord =
|
|
21
|
+
let percent = (swirl.radius - distance) / swirl.radius;
|
|
22
|
+
let theta = percent * percent * swirl.angle;
|
|
23
|
+
let s = sin(theta);
|
|
24
|
+
let c = cos(theta);
|
|
25
|
+
coord = vec2f(
|
|
26
26
|
coord.x * c - coord.y * s,
|
|
27
27
|
coord.x * s + coord.y * c
|
|
28
28
|
);
|
|
@@ -31,18 +31,23 @@ fn swirl_warp(vec2 coord, vec2 texCenter) -> vec2f {
|
|
|
31
31
|
return coord;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
fn swirl_sampleColor(
|
|
35
|
-
|
|
34
|
+
fn swirl_sampleColor(
|
|
35
|
+
sourceTexture: texture_2d<f32>,
|
|
36
|
+
sourceTextureSampler: sampler,
|
|
37
|
+
texSize: vec2f,
|
|
38
|
+
texCoord: vec2f
|
|
39
|
+
) -> vec4f {
|
|
40
|
+
var coord = texCoord * texSize;
|
|
36
41
|
coord = swirl_warp(coord, swirl.center * texSize);
|
|
37
|
-
return warp_sampleColor(
|
|
42
|
+
return warp_sampleColor(sourceTexture, sourceTextureSampler, texSize, coord);
|
|
38
43
|
}
|
|
39
44
|
`;
|
|
40
45
|
|
|
41
46
|
const fs = /* glsl */ `\
|
|
42
|
-
uniform swirlUniforms {
|
|
47
|
+
layout(std140) uniform swirlUniforms {
|
|
48
|
+
vec2 center;
|
|
43
49
|
float radius;
|
|
44
50
|
float angle;
|
|
45
|
-
vec2 center;
|
|
46
51
|
} swirl;
|
|
47
52
|
|
|
48
53
|
vec2 swirl_warp(vec2 coord, vec2 texCenter) {
|
|
@@ -5,10 +5,15 @@
|
|
|
5
5
|
import type {ShaderPass} from '@luma.gl/shadertools';
|
|
6
6
|
|
|
7
7
|
const source = /* wgsl */ `\
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
fn warp_sampleColor(
|
|
9
|
+
sourceTexture: texture_2d<f32>,
|
|
10
|
+
sourceTextureSampler: sampler,
|
|
11
|
+
texSize: vec2f,
|
|
12
|
+
coord: vec2f
|
|
13
|
+
) -> vec4f {
|
|
14
|
+
var color = textureSample(sourceTexture, sourceTextureSampler, coord / texSize);
|
|
15
|
+
let clampedCoord = clamp(coord, vec2f(0.0), texSize);
|
|
16
|
+
if (any(coord != clampedCoord)) {
|
|
12
17
|
/* fade to transparent if we are outside the image */
|
|
13
18
|
color.a *= max(0.0, 1.0 - length(coord - clampedCoord));
|
|
14
19
|
}
|