@flighthq/effects-wgpu 0.1.0 → 0.2.0
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/index.d.ts +17 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -10
- package/dist/index.js.map +1 -1
- package/dist/wgpuBevelEffect.d.ts +4 -0
- package/dist/wgpuBevelEffect.d.ts.map +1 -0
- package/dist/wgpuBevelEffect.js +122 -0
- package/dist/wgpuBevelEffect.js.map +1 -0
- package/dist/wgpuBloomEffect.d.ts.map +1 -1
- package/dist/wgpuBloomEffect.js +9 -8
- package/dist/wgpuBloomEffect.js.map +1 -1
- package/dist/wgpuBlurEffect.d.ts +8 -0
- package/dist/wgpuBlurEffect.d.ts.map +1 -0
- package/dist/wgpuBlurEffect.js +70 -0
- package/dist/wgpuBlurEffect.js.map +1 -0
- package/dist/wgpuBokehDepthOfFieldEffect.d.ts.map +1 -1
- package/dist/wgpuBokehDepthOfFieldEffect.js +2 -2
- package/dist/wgpuBokehDepthOfFieldEffect.js.map +1 -1
- package/dist/wgpuCameraMotionBlurEffect.d.ts.map +1 -1
- package/dist/wgpuCameraMotionBlurEffect.js +2 -2
- package/dist/wgpuCameraMotionBlurEffect.js.map +1 -1
- package/dist/wgpuChromaticAberrationEffect.d.ts.map +1 -1
- package/dist/wgpuChromaticAberrationEffect.js +2 -2
- package/dist/wgpuChromaticAberrationEffect.js.map +1 -1
- package/dist/wgpuColorLutPass.d.ts +3 -0
- package/dist/wgpuColorLutPass.d.ts.map +1 -0
- package/dist/wgpuColorLutPass.js +144 -0
- package/dist/wgpuColorLutPass.js.map +1 -0
- package/dist/wgpuColorMatrixPass.d.ts +3 -0
- package/dist/wgpuColorMatrixPass.d.ts.map +1 -0
- package/dist/wgpuColorMatrixPass.js +51 -0
- package/dist/wgpuColorMatrixPass.js.map +1 -0
- package/dist/wgpuConvolutionEffect.d.ts +5 -0
- package/dist/wgpuConvolutionEffect.d.ts.map +1 -0
- package/dist/wgpuConvolutionEffect.js +108 -0
- package/dist/wgpuConvolutionEffect.js.map +1 -0
- package/dist/wgpuCrtEffect.d.ts.map +1 -1
- package/dist/wgpuCrtEffect.js +2 -2
- package/dist/wgpuCrtEffect.js.map +1 -1
- package/dist/wgpuDirectionalBlurEffect.d.ts.map +1 -1
- package/dist/wgpuDirectionalBlurEffect.js +2 -2
- package/dist/wgpuDirectionalBlurEffect.js.map +1 -1
- package/dist/wgpuDisplacementEffect.d.ts.map +1 -1
- package/dist/wgpuDisplacementEffect.js +2 -2
- package/dist/wgpuDisplacementEffect.js.map +1 -1
- package/dist/wgpuDitherEffect.d.ts.map +1 -1
- package/dist/wgpuDitherEffect.js +2 -2
- package/dist/wgpuDitherEffect.js.map +1 -1
- package/dist/wgpuDropShadowEffect.d.ts +4 -0
- package/dist/wgpuDropShadowEffect.d.ts.map +1 -0
- package/dist/wgpuDropShadowEffect.js +49 -0
- package/dist/wgpuDropShadowEffect.js.map +1 -0
- package/dist/wgpuEffectBlitShader.d.ts +15 -0
- package/dist/wgpuEffectBlitShader.d.ts.map +1 -0
- package/dist/wgpuEffectBlitShader.js +71 -0
- package/dist/wgpuEffectBlitShader.js.map +1 -0
- package/dist/wgpuEffectBoxBlur.d.ts +14 -0
- package/dist/wgpuEffectBoxBlur.d.ts.map +1 -0
- package/dist/wgpuEffectBoxBlur.js +81 -0
- package/dist/wgpuEffectBoxBlur.js.map +1 -0
- package/dist/wgpuEffectGradientRamp.d.ts +17 -0
- package/dist/wgpuEffectGradientRamp.d.ts.map +1 -0
- package/dist/wgpuEffectGradientRamp.js +89 -0
- package/dist/wgpuEffectGradientRamp.js.map +1 -0
- package/dist/wgpuEffectPass.d.ts +41 -0
- package/dist/wgpuEffectPass.d.ts.map +1 -0
- package/dist/wgpuEffectPass.js +259 -0
- package/dist/wgpuEffectPass.js.map +1 -0
- package/dist/wgpuEffectProgramCache.d.ts +2 -2
- package/dist/wgpuEffectProgramCache.d.ts.map +1 -1
- package/dist/wgpuEffectProgramCache.js +5 -5
- package/dist/wgpuEffectProgramCache.js.map +1 -1
- package/dist/wgpuEffectTintShader.d.ts +8 -0
- package/dist/wgpuEffectTintShader.d.ts.map +1 -0
- package/dist/wgpuEffectTintShader.js +109 -0
- package/dist/wgpuEffectTintShader.js.map +1 -0
- package/dist/wgpuFilmGrainEffect.d.ts.map +1 -1
- package/dist/wgpuFilmGrainEffect.js +2 -2
- package/dist/wgpuFilmGrainEffect.js.map +1 -1
- package/dist/wgpuFxaaEffect.d.ts.map +1 -1
- package/dist/wgpuFxaaEffect.js +2 -2
- package/dist/wgpuFxaaEffect.js.map +1 -1
- package/dist/wgpuGlitchEffect.d.ts.map +1 -1
- package/dist/wgpuGlitchEffect.js +2 -2
- package/dist/wgpuGlitchEffect.js.map +1 -1
- package/dist/wgpuGodRaysEffect.d.ts.map +1 -1
- package/dist/wgpuGodRaysEffect.js +2 -2
- package/dist/wgpuGodRaysEffect.js.map +1 -1
- package/dist/wgpuGradientBevelEffect.d.ts +4 -0
- package/dist/wgpuGradientBevelEffect.d.ts.map +1 -0
- package/dist/wgpuGradientBevelEffect.js +189 -0
- package/dist/wgpuGradientBevelEffect.js.map +1 -0
- package/dist/wgpuGradientGlowEffect.d.ts +4 -0
- package/dist/wgpuGradientGlowEffect.d.ts.map +1 -0
- package/dist/wgpuGradientGlowEffect.js +97 -0
- package/dist/wgpuGradientGlowEffect.js.map +1 -0
- package/dist/wgpuHalftoneEffect.d.ts.map +1 -1
- package/dist/wgpuHalftoneEffect.js +2 -2
- package/dist/wgpuHalftoneEffect.js.map +1 -1
- package/dist/wgpuInnerGlowEffect.d.ts +4 -0
- package/dist/wgpuInnerGlowEffect.d.ts.map +1 -0
- package/dist/wgpuInnerGlowEffect.js +37 -0
- package/dist/wgpuInnerGlowEffect.js.map +1 -0
- package/dist/wgpuInnerShadowEffect.d.ts +4 -0
- package/dist/wgpuInnerShadowEffect.d.ts.map +1 -0
- package/dist/wgpuInnerShadowEffect.js +42 -0
- package/dist/wgpuInnerShadowEffect.js.map +1 -0
- package/dist/wgpuKuwaharaEffect.d.ts.map +1 -1
- package/dist/wgpuKuwaharaEffect.js +2 -2
- package/dist/wgpuKuwaharaEffect.js.map +1 -1
- package/dist/wgpuLensDirtEffect.d.ts.map +1 -1
- package/dist/wgpuLensDirtEffect.js +2 -2
- package/dist/wgpuLensDirtEffect.js.map +1 -1
- package/dist/wgpuLensDistortionEffect.d.ts.map +1 -1
- package/dist/wgpuLensDistortionEffect.js +2 -2
- package/dist/wgpuLensDistortionEffect.js.map +1 -1
- package/dist/wgpuLensFlareEffect.d.ts.map +1 -1
- package/dist/wgpuLensFlareEffect.js +2 -2
- package/dist/wgpuLensFlareEffect.js.map +1 -1
- package/dist/wgpuMedianEffect.d.ts +5 -0
- package/dist/wgpuMedianEffect.d.ts.map +1 -0
- package/dist/wgpuMedianEffect.js +74 -0
- package/dist/wgpuMedianEffect.js.map +1 -0
- package/dist/wgpuMotionBlurEffect.d.ts.map +1 -1
- package/dist/wgpuMotionBlurEffect.js +6 -7
- package/dist/wgpuMotionBlurEffect.js.map +1 -1
- package/dist/wgpuOuterGlowEffect.d.ts +4 -0
- package/dist/wgpuOuterGlowEffect.d.ts.map +1 -0
- package/dist/wgpuOuterGlowEffect.js +43 -0
- package/dist/wgpuOuterGlowEffect.js.map +1 -0
- package/dist/wgpuOutlineEffect.d.ts.map +1 -1
- package/dist/wgpuOutlineEffect.js +2 -2
- package/dist/wgpuOutlineEffect.js.map +1 -1
- package/dist/wgpuPixelateEffect.d.ts.map +1 -1
- package/dist/wgpuPixelateEffect.js +2 -2
- package/dist/wgpuPixelateEffect.js.map +1 -1
- package/dist/wgpuPosterizeEffect.d.ts.map +1 -1
- package/dist/wgpuPosterizeEffect.js +2 -2
- package/dist/wgpuPosterizeEffect.js.map +1 -1
- package/dist/wgpuRadialBlurEffect.d.ts.map +1 -1
- package/dist/wgpuRadialBlurEffect.js +2 -2
- package/dist/wgpuRadialBlurEffect.js.map +1 -1
- package/dist/wgpuRenderEffectPipeline.d.ts +2 -2
- package/dist/wgpuRenderEffectPipeline.d.ts.map +1 -1
- package/dist/wgpuRenderEffectPipeline.js +59 -9
- package/dist/wgpuRenderEffectPipeline.js.map +1 -1
- package/dist/wgpuRenderEffectRegistrants.d.ts +1 -0
- package/dist/wgpuRenderEffectRegistrants.d.ts.map +1 -1
- package/dist/wgpuRenderEffectRegistrants.js +39 -28
- package/dist/wgpuRenderEffectRegistrants.js.map +1 -1
- package/dist/wgpuScanlinesEffect.d.ts.map +1 -1
- package/dist/wgpuScanlinesEffect.js +2 -2
- package/dist/wgpuScanlinesEffect.js.map +1 -1
- package/dist/wgpuScreenSpaceFogEffect.d.ts.map +1 -1
- package/dist/wgpuScreenSpaceFogEffect.js +2 -2
- package/dist/wgpuScreenSpaceFogEffect.js.map +1 -1
- package/dist/wgpuSharpenEffect.d.ts.map +1 -1
- package/dist/wgpuSharpenEffect.js +2 -2
- package/dist/wgpuSharpenEffect.js.map +1 -1
- package/dist/wgpuSketchEffect.d.ts.map +1 -1
- package/dist/wgpuSketchEffect.js +2 -2
- package/dist/wgpuSketchEffect.js.map +1 -1
- package/dist/wgpuSmaaEffect.d.ts.map +1 -1
- package/dist/wgpuSmaaEffect.js +2 -2
- package/dist/wgpuSmaaEffect.js.map +1 -1
- package/dist/wgpuSsaoEffect.d.ts.map +1 -1
- package/dist/wgpuSsaoEffect.js +2 -2
- package/dist/wgpuSsaoEffect.js.map +1 -1
- package/dist/wgpuSsrEffect.d.ts.map +1 -1
- package/dist/wgpuSsrEffect.js +2 -2
- package/dist/wgpuSsrEffect.js.map +1 -1
- package/dist/wgpuTaaEffect.d.ts.map +1 -1
- package/dist/wgpuTaaEffect.js +2 -2
- package/dist/wgpuTaaEffect.js.map +1 -1
- package/dist/wgpuTiltShiftEffect.d.ts.map +1 -1
- package/dist/wgpuTiltShiftEffect.js +2 -2
- package/dist/wgpuTiltShiftEffect.js.map +1 -1
- package/dist/wgpuToneMapEffect.d.ts.map +1 -1
- package/dist/wgpuToneMapEffect.js +2 -2
- package/dist/wgpuToneMapEffect.js.map +1 -1
- package/dist/wgpuVignetteEffect.d.ts.map +1 -1
- package/dist/wgpuVignetteEffect.js +2 -2
- package/dist/wgpuVignetteEffect.js.map +1 -1
- package/dist/wgpuWhiteBalanceEffect.d.ts.map +1 -1
- package/dist/wgpuWhiteBalanceEffect.js +2 -2
- package/dist/wgpuWhiteBalanceEffect.js.map +1 -1
- package/package.json +11 -7
- package/src/wgpuBevelEffect.test.ts +13 -0
- package/src/wgpuBlurEffect.test.ts +19 -0
- package/src/wgpuColorLutPass.test.ts +7 -0
- package/src/wgpuColorMatrixPass.test.ts +7 -0
- package/src/wgpuConvolutionEffect.test.ts +13 -0
- package/src/wgpuDropShadowEffect.test.ts +13 -0
- package/src/wgpuEffectBlitShader.test.ts +13 -0
- package/src/wgpuEffectBoxBlur.test.ts +7 -0
- package/src/wgpuEffectGradientRamp.test.ts +7 -0
- package/src/wgpuEffectPass.test.ts +51 -0
- package/src/wgpuEffectTintShader.test.ts +23 -0
- package/src/wgpuGradientBevelEffect.test.ts +13 -0
- package/src/wgpuGradientGlowEffect.test.ts +13 -0
- package/src/wgpuInnerGlowEffect.test.ts +13 -0
- package/src/wgpuInnerShadowEffect.test.ts +13 -0
- package/src/wgpuMedianEffect.test.ts +13 -0
- package/src/wgpuOuterGlowEffect.test.ts +13 -0
- package/src/wgpuRenderEffectPipeline.test.ts +2 -0
- package/src/wgpuRenderEffectRegistrants.test.ts +25 -14
- package/dist/wgpuBrightnessContrastEffect.d.ts +0 -4
- package/dist/wgpuBrightnessContrastEffect.d.ts.map +0 -1
- package/dist/wgpuBrightnessContrastEffect.js +0 -29
- package/dist/wgpuBrightnessContrastEffect.js.map +0 -1
- package/dist/wgpuChannelMixerEffect.d.ts +0 -4
- package/dist/wgpuChannelMixerEffect.d.ts.map +0 -1
- package/dist/wgpuChannelMixerEffect.js +0 -34
- package/dist/wgpuChannelMixerEffect.js.map +0 -1
- package/dist/wgpuColorGradeEffect.d.ts +0 -4
- package/dist/wgpuColorGradeEffect.d.ts.map +0 -1
- package/dist/wgpuColorGradeEffect.js +0 -52
- package/dist/wgpuColorGradeEffect.js.map +0 -1
- package/dist/wgpuExposureEffect.d.ts +0 -4
- package/dist/wgpuExposureEffect.d.ts.map +0 -1
- package/dist/wgpuExposureEffect.js +0 -28
- package/dist/wgpuExposureEffect.js.map +0 -1
- package/dist/wgpuGrayscaleEffect.d.ts +0 -4
- package/dist/wgpuGrayscaleEffect.d.ts.map +0 -1
- package/dist/wgpuGrayscaleEffect.js +0 -27
- package/dist/wgpuGrayscaleEffect.js.map +0 -1
- package/dist/wgpuHueSaturationEffect.d.ts +0 -4
- package/dist/wgpuHueSaturationEffect.d.ts.map +0 -1
- package/dist/wgpuHueSaturationEffect.js +0 -75
- package/dist/wgpuHueSaturationEffect.js.map +0 -1
- package/dist/wgpuInvertEffect.d.ts +0 -4
- package/dist/wgpuInvertEffect.d.ts.map +0 -1
- package/dist/wgpuInvertEffect.js +0 -26
- package/dist/wgpuInvertEffect.js.map +0 -1
- package/dist/wgpuLiftGammaGainEffect.d.ts +0 -4
- package/dist/wgpuLiftGammaGainEffect.d.ts.map +0 -1
- package/dist/wgpuLiftGammaGainEffect.js +0 -51
- package/dist/wgpuLiftGammaGainEffect.js.map +0 -1
- package/dist/wgpuLookupTableGradeEffect.d.ts +0 -4
- package/dist/wgpuLookupTableGradeEffect.d.ts.map +0 -1
- package/dist/wgpuLookupTableGradeEffect.js +0 -30
- package/dist/wgpuLookupTableGradeEffect.js.map +0 -1
- package/dist/wgpuSepiaEffect.d.ts +0 -4
- package/dist/wgpuSepiaEffect.d.ts.map +0 -1
- package/dist/wgpuSepiaEffect.js +0 -31
- package/dist/wgpuSepiaEffect.js.map +0 -1
- package/src/wgpuBrightnessContrastEffect.test.ts +0 -16
- package/src/wgpuChannelMixerEffect.test.ts +0 -13
- package/src/wgpuColorGradeEffect.test.ts +0 -13
- package/src/wgpuExposureEffect.test.ts +0 -13
- package/src/wgpuGrayscaleEffect.test.ts +0 -13
- package/src/wgpuHueSaturationEffect.test.ts +0 -13
- package/src/wgpuInvertEffect.test.ts +0 -13
- package/src/wgpuLiftGammaGainEffect.test.ts +0 -13
- package/src/wgpuLookupTableGradeEffect.test.ts +0 -16
- package/src/wgpuSepiaEffect.test.ts +0 -13
package/dist/index.d.ts
CHANGED
|
@@ -1,31 +1,38 @@
|
|
|
1
|
+
export * from './wgpuColorMatrixPass';
|
|
2
|
+
export * from './wgpuBevelEffect';
|
|
1
3
|
export * from './wgpuBloomEffect';
|
|
4
|
+
export * from './wgpuBlurEffect';
|
|
2
5
|
export * from './wgpuBokehDepthOfFieldEffect';
|
|
3
|
-
export * from './wgpuBrightnessContrastEffect';
|
|
4
6
|
export * from './wgpuCameraMotionBlurEffect';
|
|
5
|
-
export * from './wgpuChannelMixerEffect';
|
|
6
7
|
export * from './wgpuChromaticAberrationEffect';
|
|
7
|
-
export * from './
|
|
8
|
+
export * from './wgpuConvolutionEffect';
|
|
8
9
|
export * from './wgpuCrtEffect';
|
|
9
10
|
export * from './wgpuDirectionalBlurEffect';
|
|
10
11
|
export * from './wgpuDisplacementEffect';
|
|
12
|
+
export * from './wgpuDropShadowEffect';
|
|
11
13
|
export * from './wgpuDitherEffect';
|
|
14
|
+
export * from './wgpuEffectBlitShader';
|
|
15
|
+
export * from './wgpuEffectBoxBlur';
|
|
16
|
+
export * from './wgpuEffectGradientRamp';
|
|
17
|
+
export * from './wgpuEffectPass';
|
|
12
18
|
export * from './wgpuEffectProgramCache';
|
|
13
|
-
export * from './
|
|
19
|
+
export * from './wgpuEffectTintShader';
|
|
14
20
|
export * from './wgpuFilmGrainEffect';
|
|
15
21
|
export * from './wgpuFxaaEffect';
|
|
16
22
|
export * from './wgpuGlitchEffect';
|
|
17
23
|
export * from './wgpuGodRaysEffect';
|
|
18
|
-
export * from './
|
|
24
|
+
export * from './wgpuGradientBevelEffect';
|
|
25
|
+
export * from './wgpuGradientGlowEffect';
|
|
19
26
|
export * from './wgpuHalftoneEffect';
|
|
20
|
-
export * from './
|
|
21
|
-
export * from './
|
|
27
|
+
export * from './wgpuInnerGlowEffect';
|
|
28
|
+
export * from './wgpuInnerShadowEffect';
|
|
22
29
|
export * from './wgpuKuwaharaEffect';
|
|
23
30
|
export * from './wgpuLensDirtEffect';
|
|
24
31
|
export * from './wgpuLensDistortionEffect';
|
|
25
32
|
export * from './wgpuLensFlareEffect';
|
|
26
|
-
export * from './
|
|
27
|
-
export * from './wgpuLookupTableGradeEffect';
|
|
33
|
+
export * from './wgpuMedianEffect';
|
|
28
34
|
export * from './wgpuMotionBlurEffect';
|
|
35
|
+
export * from './wgpuOuterGlowEffect';
|
|
29
36
|
export * from './wgpuOutlineEffect';
|
|
30
37
|
export * from './wgpuPixelateEffect';
|
|
31
38
|
export * from './wgpuPosterizeEffect';
|
|
@@ -35,7 +42,6 @@ export * from './wgpuRenderEffectRegistrants';
|
|
|
35
42
|
export * from './wgpuRenderEffectRegistry';
|
|
36
43
|
export * from './wgpuScanlinesEffect';
|
|
37
44
|
export * from './wgpuScreenSpaceFogEffect';
|
|
38
|
-
export * from './wgpuSepiaEffect';
|
|
39
45
|
export * from './wgpuSharpenEffect';
|
|
40
46
|
export * from './wgpuSketchEffect';
|
|
41
47
|
export * from './wgpuSmaaEffect';
|
|
@@ -46,4 +52,5 @@ export * from './wgpuTiltShiftEffect';
|
|
|
46
52
|
export * from './wgpuToneMapEffect';
|
|
47
53
|
export * from './wgpuVignetteEffect';
|
|
48
54
|
export * from './wgpuWhiteBalanceEffect';
|
|
55
|
+
export * from './wgpuColorLutPass';
|
|
49
56
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,31 +1,38 @@
|
|
|
1
|
+
export * from './wgpuColorMatrixPass';
|
|
2
|
+
export * from './wgpuBevelEffect';
|
|
1
3
|
export * from './wgpuBloomEffect';
|
|
4
|
+
export * from './wgpuBlurEffect';
|
|
2
5
|
export * from './wgpuBokehDepthOfFieldEffect';
|
|
3
|
-
export * from './wgpuBrightnessContrastEffect';
|
|
4
6
|
export * from './wgpuCameraMotionBlurEffect';
|
|
5
|
-
export * from './wgpuChannelMixerEffect';
|
|
6
7
|
export * from './wgpuChromaticAberrationEffect';
|
|
7
|
-
export * from './
|
|
8
|
+
export * from './wgpuConvolutionEffect';
|
|
8
9
|
export * from './wgpuCrtEffect';
|
|
9
10
|
export * from './wgpuDirectionalBlurEffect';
|
|
10
11
|
export * from './wgpuDisplacementEffect';
|
|
12
|
+
export * from './wgpuDropShadowEffect';
|
|
11
13
|
export * from './wgpuDitherEffect';
|
|
14
|
+
export * from './wgpuEffectBlitShader';
|
|
15
|
+
export * from './wgpuEffectBoxBlur';
|
|
16
|
+
export * from './wgpuEffectGradientRamp';
|
|
17
|
+
export * from './wgpuEffectPass';
|
|
12
18
|
export * from './wgpuEffectProgramCache';
|
|
13
|
-
export * from './
|
|
19
|
+
export * from './wgpuEffectTintShader';
|
|
14
20
|
export * from './wgpuFilmGrainEffect';
|
|
15
21
|
export * from './wgpuFxaaEffect';
|
|
16
22
|
export * from './wgpuGlitchEffect';
|
|
17
23
|
export * from './wgpuGodRaysEffect';
|
|
18
|
-
export * from './
|
|
24
|
+
export * from './wgpuGradientBevelEffect';
|
|
25
|
+
export * from './wgpuGradientGlowEffect';
|
|
19
26
|
export * from './wgpuHalftoneEffect';
|
|
20
|
-
export * from './
|
|
21
|
-
export * from './
|
|
27
|
+
export * from './wgpuInnerGlowEffect';
|
|
28
|
+
export * from './wgpuInnerShadowEffect';
|
|
22
29
|
export * from './wgpuKuwaharaEffect';
|
|
23
30
|
export * from './wgpuLensDirtEffect';
|
|
24
31
|
export * from './wgpuLensDistortionEffect';
|
|
25
32
|
export * from './wgpuLensFlareEffect';
|
|
26
|
-
export * from './
|
|
27
|
-
export * from './wgpuLookupTableGradeEffect';
|
|
33
|
+
export * from './wgpuMedianEffect';
|
|
28
34
|
export * from './wgpuMotionBlurEffect';
|
|
35
|
+
export * from './wgpuOuterGlowEffect';
|
|
29
36
|
export * from './wgpuOutlineEffect';
|
|
30
37
|
export * from './wgpuPixelateEffect';
|
|
31
38
|
export * from './wgpuPosterizeEffect';
|
|
@@ -35,7 +42,6 @@ export * from './wgpuRenderEffectRegistrants';
|
|
|
35
42
|
export * from './wgpuRenderEffectRegistry';
|
|
36
43
|
export * from './wgpuScanlinesEffect';
|
|
37
44
|
export * from './wgpuScreenSpaceFogEffect';
|
|
38
|
-
export * from './wgpuSepiaEffect';
|
|
39
45
|
export * from './wgpuSharpenEffect';
|
|
40
46
|
export * from './wgpuSketchEffect';
|
|
41
47
|
export * from './wgpuSmaaEffect';
|
|
@@ -46,4 +52,5 @@ export * from './wgpuTiltShiftEffect';
|
|
|
46
52
|
export * from './wgpuToneMapEffect';
|
|
47
53
|
export * from './wgpuVignetteEffect';
|
|
48
54
|
export * from './wgpuWhiteBalanceEffect';
|
|
55
|
+
export * from './wgpuColorLutPass';
|
|
49
56
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { BevelEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget, WgpuRenderTargetPool } from '@flighthq/types';
|
|
2
|
+
export declare function applyBevelEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, pool: WgpuRenderTargetPool, effect: Readonly<BevelEffect>): void;
|
|
3
|
+
export declare const defaultWgpuBevelEffectRunner: WgpuRenderEffectRunner;
|
|
4
|
+
//# sourceMappingURL=wgpuBevelEffect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuBevelEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBevelEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAezB,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,IAAI,CAkDN;AAED,eAAO,MAAM,4BAA4B,EAAE,sBAE1C,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { acquireWgpuRenderTarget, releaseWgpuRenderTarget } from '@flighthq/render-wgpu';
|
|
2
|
+
import { applyWgpuEffectBlitPass } from './wgpuEffectBlitShader';
|
|
3
|
+
import { applyWgpuEffectBoxBlur } from './wgpuEffectBoxBlur';
|
|
4
|
+
import { clearWgpuEffectTarget, createWgpuDualSourceEffectPipeline, drawWgpuDualSourceEffectPass, } from './wgpuEffectPass';
|
|
5
|
+
import { applyWgpuEffectTintPass } from './wgpuEffectTintShader';
|
|
6
|
+
// Bevel composite effect: the directional gradient of the blurred silhouette drives a highlight/shadow edge band, clipped by bevelType and composited over the source.
|
|
7
|
+
// Full-frame realization: acquires the recipe's three scratch targets from the effect pool, runs the
|
|
8
|
+
// multi-pass recipe (neutral tint → box blur → directional-gradient composite), then releases them.
|
|
9
|
+
export function applyBevelEffectToWgpu(state, source, dest, pool, effect) {
|
|
10
|
+
const src = source;
|
|
11
|
+
const dst = dest;
|
|
12
|
+
const descriptor = { width: source.width, height: source.height, format: source.format };
|
|
13
|
+
const tinted = acquireWgpuRenderTarget(state, pool, descriptor);
|
|
14
|
+
const blurred = acquireWgpuRenderTarget(state, pool, descriptor);
|
|
15
|
+
const blurTemp = acquireWgpuRenderTarget(state, pool, descriptor);
|
|
16
|
+
const angle = ((effect.angle ?? 45) * Math.PI) / 180;
|
|
17
|
+
const distance = effect.distance ?? 4;
|
|
18
|
+
// Match the surface reference, which snaps the light offset to whole pixels.
|
|
19
|
+
const offsetX = Math.round(Math.cos(angle) * distance);
|
|
20
|
+
const offsetY = Math.round(Math.sin(angle) * distance);
|
|
21
|
+
const shadowColor = effect.shadowColor ?? 0x000000;
|
|
22
|
+
const shadowAlpha = effect.shadowAlpha ?? 1;
|
|
23
|
+
const highlightColor = effect.highlightColor ?? 0xffffff;
|
|
24
|
+
const highlightAlpha = effect.highlightAlpha ?? 1;
|
|
25
|
+
const strength = effect.strength ?? 1;
|
|
26
|
+
const quality = Math.max(1, Math.round(effect.quality ?? 1));
|
|
27
|
+
const knockout = effect.knockout ?? false;
|
|
28
|
+
const bevelType = effect.bevelType ?? 'inner';
|
|
29
|
+
// Blurred alpha field (neutral white tint, strength 1 — strength is the gradient
|
|
30
|
+
// intensity applied per-pixel in the composite, not baked into the field).
|
|
31
|
+
applyWgpuEffectTintPass(state, src, tinted, 0xffffff, 1, 1);
|
|
32
|
+
applyWgpuEffectBoxBlur(state, tinted, blurred, blurTemp, {
|
|
33
|
+
blurX: effect.blurX ?? 4,
|
|
34
|
+
blurY: effect.blurY ?? 4,
|
|
35
|
+
passes: quality,
|
|
36
|
+
});
|
|
37
|
+
clearWgpuEffectTarget(state, dst);
|
|
38
|
+
if (!knockout)
|
|
39
|
+
applyWgpuEffectBlitPass(state, src, dst);
|
|
40
|
+
applyWgpuBevelCompositePass(state, blurred, src, dst, {
|
|
41
|
+
offsetX: offsetX / source.width,
|
|
42
|
+
// Negate Y: the field is a top-down render-target texture, so sampling toward the light
|
|
43
|
+
// along screen-Y reads the opposite UV-Y (same orientation rule as applyWgpuEffectBlitOffsetPass).
|
|
44
|
+
offsetY: -offsetY / source.height,
|
|
45
|
+
highlightColor,
|
|
46
|
+
highlightAlpha,
|
|
47
|
+
shadowColor,
|
|
48
|
+
shadowAlpha,
|
|
49
|
+
intensity: strength,
|
|
50
|
+
clipMode: bevelType === 'inner' ? 1 : bevelType === 'outer' ? 2 : 0,
|
|
51
|
+
});
|
|
52
|
+
releaseWgpuRenderTarget(pool, tinted);
|
|
53
|
+
releaseWgpuRenderTarget(pool, blurred);
|
|
54
|
+
releaseWgpuRenderTarget(pool, blurTemp);
|
|
55
|
+
}
|
|
56
|
+
export const defaultWgpuBevelEffectRunner = (ctx, effect) => {
|
|
57
|
+
applyBevelEffectToWgpu(ctx.state, ctx.source, ctx.dest, ctx.pool, effect);
|
|
58
|
+
};
|
|
59
|
+
// Reads the blurred alpha field (group 1) and source (group 2); writes the tinted, clipped bevel
|
|
60
|
+
// mask, premultiplied, blended over `dest` (which already holds the source unless knockout).
|
|
61
|
+
const BEVEL_COMPOSITE_WGSL = /* wgsl */ `
|
|
62
|
+
struct Uniforms {
|
|
63
|
+
highlight : vec4f,
|
|
64
|
+
shadow : vec4f,
|
|
65
|
+
offset : vec2f,
|
|
66
|
+
intensity : f32,
|
|
67
|
+
clipMode : f32,
|
|
68
|
+
}
|
|
69
|
+
@group(0) @binding(0) var<uniform> uni : Uniforms;
|
|
70
|
+
@group(1) @binding(0) var fieldTex : texture_2d<f32>;
|
|
71
|
+
@group(1) @binding(1) var fieldSmp : sampler;
|
|
72
|
+
@group(2) @binding(0) var srcTex : texture_2d<f32>;
|
|
73
|
+
@group(2) @binding(1) var srcSmp : sampler;
|
|
74
|
+
|
|
75
|
+
fn sampleField(uv : vec2f) -> f32 {
|
|
76
|
+
if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) { return 0.0; }
|
|
77
|
+
return textureSampleLevel(fieldTex, fieldSmp, uv, 0.0).a;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@fragment
|
|
81
|
+
fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
|
|
82
|
+
let lit = sampleField(uv - uni.offset);
|
|
83
|
+
let shade = sampleField(uv + uni.offset);
|
|
84
|
+
let gradient = lit - shade;
|
|
85
|
+
let srcA = textureSampleLevel(srcTex, srcSmp, uv, 0.0).a;
|
|
86
|
+
let isHighlight = gradient >= 0.0;
|
|
87
|
+
let color = select(uni.shadow.xyz, uni.highlight.xyz, isHighlight);
|
|
88
|
+
let colorAlpha = select(uni.shadow.w, uni.highlight.w, isHighlight);
|
|
89
|
+
var clip = 1.0;
|
|
90
|
+
if (uni.clipMode == 1.0) { clip = srcA; }
|
|
91
|
+
else if (uni.clipMode == 2.0) { clip = 1.0 - srcA; }
|
|
92
|
+
let edge = min(1.0, abs(gradient) * uni.intensity);
|
|
93
|
+
let a = edge * colorAlpha * clip;
|
|
94
|
+
return vec4f(color * a, a);
|
|
95
|
+
}`;
|
|
96
|
+
function applyWgpuBevelCompositePass(state, field, source, dest, params) {
|
|
97
|
+
const pipeline = getWgpuBevelCompositeShader(state);
|
|
98
|
+
drawWgpuDualSourceEffectPass(state, field, source, dest, pipeline, (f32) => {
|
|
99
|
+
f32[0] = ((params.highlightColor >> 16) & 0xff) / 255;
|
|
100
|
+
f32[1] = ((params.highlightColor >> 8) & 0xff) / 255;
|
|
101
|
+
f32[2] = (params.highlightColor & 0xff) / 255;
|
|
102
|
+
f32[3] = params.highlightAlpha;
|
|
103
|
+
f32[4] = ((params.shadowColor >> 16) & 0xff) / 255;
|
|
104
|
+
f32[5] = ((params.shadowColor >> 8) & 0xff) / 255;
|
|
105
|
+
f32[6] = (params.shadowColor & 0xff) / 255;
|
|
106
|
+
f32[7] = params.shadowAlpha;
|
|
107
|
+
f32[8] = params.offsetX;
|
|
108
|
+
f32[9] = params.offsetY;
|
|
109
|
+
f32[10] = params.intensity;
|
|
110
|
+
f32[11] = params.clipMode;
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
function getWgpuBevelCompositeShader(state) {
|
|
114
|
+
let p = bevelCompositePipelines.get(state);
|
|
115
|
+
if (p === undefined) {
|
|
116
|
+
p = createWgpuDualSourceEffectPipeline(state, BEVEL_COMPOSITE_WGSL);
|
|
117
|
+
bevelCompositePipelines.set(state, p);
|
|
118
|
+
}
|
|
119
|
+
return p;
|
|
120
|
+
}
|
|
121
|
+
const bevelCompositePipelines = new WeakMap();
|
|
122
|
+
//# sourceMappingURL=wgpuBevelEffect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuBevelEffect.js","sourceRoot":"","sources":["../src/wgpuBevelEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBloomEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBloomEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuBloomEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBloomEffect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAYzB,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,IAAI,CAgCN;AAED,eAAO,MAAM,4BAA4B,EAAE,sBAE1C,CAAC"}
|
package/dist/wgpuBloomEffect.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { computeBloomBlurRadius, computeBloomIntensity, computeBloomThreshold } from '@flighthq/effects';
|
|
2
|
-
import { applyGaussianBlurFilterToWgpu, createWgpuDualSourcePipeline, drawWgpuDualSourcePass, drawWgpuFilterPass, } from '@flighthq/filters-wgpu';
|
|
3
2
|
import { acquireWgpuRenderTarget, releaseWgpuRenderTarget } from '@flighthq/render-wgpu';
|
|
3
|
+
import { applyGaussianBlurToWgpu } from './wgpuBlurEffect';
|
|
4
|
+
import { createWgpuDualSourceEffectPipeline, drawWgpuDualSourceEffectPass, drawWgpuEffectPass } from './wgpuEffectPass';
|
|
4
5
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
5
|
-
// Bloom: bright-pass → blur the bright branch (
|
|
6
|
-
// composite back. The multi-pass reference recipe — it acquires intermediate targets from
|
|
7
|
-
// releases them, branches, and reuses
|
|
6
|
+
// Bloom: bright-pass → blur the bright branch (via the effects-owned separable gaussian blur) →
|
|
7
|
+
// additively composite back. The multi-pass reference recipe — it acquires intermediate targets from
|
|
8
|
+
// the pool and releases them, branches, and reuses the blur primitive, which is what makes it an effect.
|
|
8
9
|
// The Wgpu mirror of effects-gl's applyBloomEffectToGl; identical parameters come from the
|
|
9
10
|
// shared computeBloomThreshold / computeBloomIntensity / computeBloomBlurRadius.
|
|
10
11
|
export function applyBloomEffectToWgpu(state, source, dest, pool, effect) {
|
|
@@ -16,12 +17,12 @@ export function applyBloomEffectToWgpu(state, source, dest, pool, effect) {
|
|
|
16
17
|
const blurred = acquireWgpuRenderTarget(state, pool, descriptor);
|
|
17
18
|
const temp = acquireWgpuRenderTarget(state, pool, descriptor);
|
|
18
19
|
const brightPipeline = getWgpuEffectPipeline(state, 'bloom.bright', BLOOM_BRIGHT_FRAGMENT_WGSL, 'replace');
|
|
19
|
-
|
|
20
|
+
drawWgpuEffectPass(state, source, bright, brightPipeline, (f32) => {
|
|
20
21
|
f32[0] = threshold;
|
|
21
22
|
});
|
|
22
|
-
|
|
23
|
+
applyGaussianBlurToWgpu(state, bright, blurred, temp, { blurX: radius, blurY: radius });
|
|
23
24
|
const compositePipeline = getBloomCompositePipeline(state);
|
|
24
|
-
|
|
25
|
+
drawWgpuDualSourceEffectPass(state, source, blurred, dest, compositePipeline, (f32) => {
|
|
25
26
|
f32[0] = intensity;
|
|
26
27
|
});
|
|
27
28
|
releaseWgpuRenderTarget(pool, bright);
|
|
@@ -36,7 +37,7 @@ export const defaultWgpuBloomEffectRunner = (ctx, effect) => {
|
|
|
36
37
|
function getBloomCompositePipeline(state) {
|
|
37
38
|
let pipeline = _compositePipelines.get(state);
|
|
38
39
|
if (pipeline === undefined) {
|
|
39
|
-
pipeline =
|
|
40
|
+
pipeline = createWgpuDualSourceEffectPipeline(state, BLOOM_COMPOSITE_FRAGMENT_WGSL, 'replace');
|
|
40
41
|
_compositePipelines.set(state, pipeline);
|
|
41
42
|
}
|
|
42
43
|
return pipeline;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBloomEffect.js","sourceRoot":"","sources":["../src/wgpuBloomEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuBloomEffect.js","sourceRoot":"","sources":["../src/wgpuBloomEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACzG,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AASzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,kCAAkC,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxH,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,gGAAgG;AAChG,qGAAqG;AACrG,yGAAyG;AACzG,2FAA2F;AAC3F,iFAAiF;AACjF,MAAM,UAAU,sBAAsB,CACpC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,IAA0B,EAC1B,MAA6B;IAE7B,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAEzF,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAE9D,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,0BAA0B,EAAE,SAAS,CAAC,CAAC;IAC3G,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE;QACpF,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAExF,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC3D,4BAA4B,CAC1B,KAAK,EACL,MAA0B,EAC1B,OAAO,EACP,IAAwB,EACxB,iBAAiB,EACjB,CAAC,GAAG,EAAE,EAAE;QACN,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACrB,CAAC,CACF,CAAC;IAEF,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAClF,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAqB,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,gGAAgG;AAChG,wFAAwF;AACxF,SAAS,yBAAyB,CAAC,KAAsB;IACvD,IAAI,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,QAAQ,GAAG,kCAAkC,CAAC,KAAK,EAAE,6BAA6B,EAAE,SAAS,CAAC,CAAC;QAC/F,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAiD,CAAC;AAEzF,MAAM,0BAA0B,GAAG,UAAU,CAAC;;;;;;;;;;;;EAY5C,CAAC;AAEH,MAAM,6BAA6B,GAAG,UAAU,CAAC;;;;;;;;;;;;;EAa/C,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { BlurEffect, WgpuRenderEffectRunner, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types';
|
|
2
|
+
export declare function applyBlurEffectToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, temp: Readonly<WgpuRenderTarget>, effect: Readonly<BlurEffect>): void;
|
|
3
|
+
export declare function applyGaussianBlurToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, temp: Readonly<WgpuRenderTarget>, options: Readonly<{
|
|
4
|
+
blurX?: number;
|
|
5
|
+
blurY?: number;
|
|
6
|
+
}>): void;
|
|
7
|
+
export declare const defaultWgpuBlurEffectRunner: WgpuRenderEffectRunner;
|
|
8
|
+
//# sourceMappingURL=wgpuBlurEffect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuBlurEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBlurEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAa7G,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAC3B,IAAI,CAEN;AAMD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,OAAO,EAAE,QAAQ,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACpD,IAAI,CAON;AAED,eAAO,MAAM,2BAA2B,EAAE,sBAKzC,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { acquireWgpuRenderTarget, releaseWgpuRenderTarget } from '@flighthq/render-wgpu';
|
|
2
|
+
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
3
|
+
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
4
|
+
// Plain separable Gaussian blur: two axis passes (source → temp horizontally, temp → dest vertically),
|
|
5
|
+
// each a single weighted fullscreen pass with radius ⌈3σ⌉. `blurX`/`blurY` are the Gaussian standard
|
|
6
|
+
// deviations (CSS `blur(Xpx)` uses sigma = X), matching the CSS and surface Gaussian references and the
|
|
7
|
+
// effects-gl blur. The effects-owned blur primitive — the shared gaussian pass BloomEffect and the plain
|
|
8
|
+
// BlurEffect both use, so the wgpu effects backend owns its blur rather than delegating to the filters layer.
|
|
9
|
+
// Applies a `BlurEffect` descriptor to `source`, writing to `dest`. `temp` is a ping-pong scratch
|
|
10
|
+
// target distinct from both `source` and `dest`.
|
|
11
|
+
export function applyBlurEffectToWgpu(state, source, dest, temp, effect) {
|
|
12
|
+
applyGaussianBlurToWgpu(state, source, dest, temp, { blurX: effect.blurX, blurY: effect.blurY });
|
|
13
|
+
}
|
|
14
|
+
// Applies a faithful separable Gaussian blur to `source`, writing to `dest`. `blurX`/`blurY` are the
|
|
15
|
+
// Gaussian standard deviations in pixels (default 4). Runs two unconditional separable passes,
|
|
16
|
+
// source → temp (X) then temp → dest (Y); a zero-radius axis copies through unchanged, so the result
|
|
17
|
+
// always lands in `dest` without a separate blit. `temp` is a ping-pong scratch distinct from both.
|
|
18
|
+
export function applyGaussianBlurToWgpu(state, source, dest, temp, options) {
|
|
19
|
+
const sigmaX = options.blurX ?? 4;
|
|
20
|
+
const sigmaY = options.blurY ?? 4;
|
|
21
|
+
const radiusX = sigmaX > 0 ? Math.ceil(sigmaX * 3) : 0;
|
|
22
|
+
const radiusY = sigmaY > 0 ? Math.ceil(sigmaY * 3) : 0;
|
|
23
|
+
applyWgpuGaussianBlurPass(state, source, temp, sigmaX, radiusX, 1, 0);
|
|
24
|
+
applyWgpuGaussianBlurPass(state, temp, dest, sigmaY, radiusY, 0, 1);
|
|
25
|
+
}
|
|
26
|
+
export const defaultWgpuBlurEffectRunner = (ctx, effect) => {
|
|
27
|
+
const descriptor = { width: ctx.source.width, height: ctx.source.height, format: ctx.source.format };
|
|
28
|
+
const temp = acquireWgpuRenderTarget(ctx.state, ctx.pool, descriptor);
|
|
29
|
+
applyBlurEffectToWgpu(ctx.state, ctx.source, ctx.dest, temp, effect);
|
|
30
|
+
releaseWgpuRenderTarget(ctx.pool, temp);
|
|
31
|
+
};
|
|
32
|
+
function applyWgpuGaussianBlurPass(state, source, dest, sigma, radius, dirX, dirY) {
|
|
33
|
+
const pipeline = getWgpuEffectPipeline(state, 'blur.gaussian', GAUSSIAN_BLUR_WGSL, 'replace');
|
|
34
|
+
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
35
|
+
f32[0] = 1 / source.width;
|
|
36
|
+
f32[1] = 1 / source.height;
|
|
37
|
+
f32[2] = dirX;
|
|
38
|
+
f32[3] = dirY;
|
|
39
|
+
f32[4] = radius;
|
|
40
|
+
f32[5] = sigma;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
// Slot layout: [0,1]=texelSize, [2,3]=direction, [4]=radius, [5]=sigma.
|
|
44
|
+
const GAUSSIAN_BLUR_WGSL = /* wgsl */ `
|
|
45
|
+
struct Uniforms {
|
|
46
|
+
texelSize : vec2f,
|
|
47
|
+
direction : vec2f,
|
|
48
|
+
radius : f32,
|
|
49
|
+
sigma : f32,
|
|
50
|
+
_pad0 : f32, _pad1 : f32,
|
|
51
|
+
}
|
|
52
|
+
@group(0) @binding(0) var<uniform> uni : Uniforms;
|
|
53
|
+
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
54
|
+
@group(1) @binding(1) var smp : sampler;
|
|
55
|
+
|
|
56
|
+
@fragment
|
|
57
|
+
fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
|
|
58
|
+
let r = i32(uni.radius);
|
|
59
|
+
if (r == 0) { return textureSampleLevel(tex, smp, uv, 0.0); }
|
|
60
|
+
let twoSigmaSq = 2.0 * uni.sigma * uni.sigma;
|
|
61
|
+
var sum = vec4f(0.0);
|
|
62
|
+
var weightSum = 0.0;
|
|
63
|
+
for (var i = -r; i <= r; i++) {
|
|
64
|
+
let w = exp(-f32(i * i) / twoSigmaSq);
|
|
65
|
+
sum += w * textureSampleLevel(tex, smp, uv + f32(i) * uni.texelSize * uni.direction, 0.0);
|
|
66
|
+
weightSum += w;
|
|
67
|
+
}
|
|
68
|
+
return sum / weightSum;
|
|
69
|
+
}`;
|
|
70
|
+
//# sourceMappingURL=wgpuBlurEffect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuBlurEffect.js","sourceRoot":"","sources":["../src/wgpuBlurEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBokehDepthOfFieldEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBokehDepthOfFieldEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuBokehDepthOfFieldEffect.d.ts","sourceRoot":"","sources":["../src/wgpuBokehDepthOfFieldEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAWzB,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GACxC,IAAI,CAUN;AAED,eAAO,MAAM,wCAAwC,EAAE,sBAEtD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
3
|
// Bokeh depth-of-field: a disc-shaped blur. The real DoF computes a per-pixel circle of confusion from a
|
|
4
4
|
// sampleable depth texture (focusDistance/focusRange) and scales the disc radius by it — but Wgpu does
|
|
@@ -11,7 +11,7 @@ export function applyBokehDepthOfFieldEffectToWgpu(state, source, dest, effect)
|
|
|
11
11
|
const width = source.width;
|
|
12
12
|
const height = source.height;
|
|
13
13
|
const pipeline = getWgpuEffectPipeline(state, 'lens.bokehDoF', BOKEH_DOF_FRAGMENT_WGSL, 'replace');
|
|
14
|
-
|
|
14
|
+
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
15
15
|
f32[0] = maxBlur;
|
|
16
16
|
f32[2] = width;
|
|
17
17
|
f32[3] = height;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBokehDepthOfFieldEffect.js","sourceRoot":"","sources":["../src/wgpuBokehDepthOfFieldEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuBokehDepthOfFieldEffect.js","sourceRoot":"","sources":["../src/wgpuBokehDepthOfFieldEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,yGAAyG;AACzG,uGAAuG;AACvG,yGAAyG;AACzG,yGAAyG;AACzG,iGAAiG;AACjG,iDAAiD;AACjD,MAAM,UAAU,kCAAkC,CAChD,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAyC;IAEzC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,SAAS,CAAC,CAAC;IACnG,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QACjB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACf,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,wCAAwC,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC9F,kCAAkC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAiC,CAAC,CAAC;AACzG,CAAC,CAAC;AAEF,uGAAuG;AACvG,mGAAmG;AACnG,MAAM,uBAAuB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;EAyBzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuCameraMotionBlurEffect.d.ts","sourceRoot":"","sources":["../src/wgpuCameraMotionBlurEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuCameraMotionBlurEffect.d.ts","sourceRoot":"","sources":["../src/wgpuCameraMotionBlurEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAUzB,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GACvC,IAAI,CAQN;AAED,eAAO,MAAM,uCAAuC,EAAE,sBAErD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
3
|
// Camera motion blur: a real single-pass radial/zoom blur scaled by intensity — smears each sample
|
|
4
4
|
// toward the screen center. A legitimate 2D effect on its own, the Wgpu mirror of effects-gl's
|
|
@@ -9,7 +9,7 @@ export function applyCameraMotionBlurEffectToWgpu(state, source, dest, effect) {
|
|
|
9
9
|
const intensity = effect.intensity ?? 0.5;
|
|
10
10
|
const samples = effect.samples ?? 16;
|
|
11
11
|
const pipeline = getWgpuEffectPipeline(state, 'motion.cameraMotionBlur', CAMERA_MOTION_BLUR_FRAGMENT_WGSL, 'replace');
|
|
12
|
-
|
|
12
|
+
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
13
13
|
f32[0] = intensity;
|
|
14
14
|
f32[1] = samples;
|
|
15
15
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuCameraMotionBlurEffect.js","sourceRoot":"","sources":["../src/wgpuCameraMotionBlurEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuCameraMotionBlurEffect.js","sourceRoot":"","sources":["../src/wgpuCameraMotionBlurEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,mGAAmG;AACnG,+FAA+F;AAC/F,+FAA+F;AAC/F,uGAAuG;AACvG,gFAAgF;AAChF,MAAM,UAAU,iCAAiC,CAC/C,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAwC;IAExC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,SAAS,CAAC,CAAC;IACtH,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,uCAAuC,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC7F,iCAAiC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAgC,CAAC,CAAC;AACvG,CAAC,CAAC;AAEF,uGAAuG;AACvG,MAAM,gCAAgC,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BlD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuChromaticAberrationEffect.d.ts","sourceRoot":"","sources":["../src/wgpuChromaticAberrationEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuChromaticAberrationEffect.d.ts","sourceRoot":"","sources":["../src/wgpuChromaticAberrationEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAQzB,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC1C,IAAI,CAaN;AAED,eAAO,MAAM,0CAA0C,EAAE,sBAExD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { drawWgpuEffectPass } from './wgpuEffectPass';
|
|
2
2
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
3
3
|
// Chromatic aberration: sample the R/G/B channels at progressively larger offsets so colors fringe
|
|
4
4
|
// apart. When radial, the offset scales with distance from the optical center (true lens behavior);
|
|
@@ -7,7 +7,7 @@ export function applyChromaticAberrationEffectToWgpu(state, source, dest, effect
|
|
|
7
7
|
const intensity = effect.intensity ?? 0.005;
|
|
8
8
|
const radial = effect.radial ?? true;
|
|
9
9
|
const pipeline = getWgpuEffectPipeline(state, 'lens.chromaticAberration', CHROMATIC_ABERRATION_FRAGMENT_WGSL, 'replace');
|
|
10
|
-
|
|
10
|
+
drawWgpuEffectPass(state, source, dest, pipeline, (f32) => {
|
|
11
11
|
f32[0] = intensity;
|
|
12
12
|
f32[1] = radial ? 1 : 0;
|
|
13
13
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuChromaticAberrationEffect.js","sourceRoot":"","sources":["../src/wgpuChromaticAberrationEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuChromaticAberrationEffect.js","sourceRoot":"","sources":["../src/wgpuChromaticAberrationEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,mGAAmG;AACnG,oGAAoG;AACpG,8CAA8C;AAC9C,MAAM,UAAU,oCAAoC,CAClD,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAA2C;IAE3C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;IACrC,MAAM,QAAQ,GAAG,qBAAqB,CACpC,KAAK,EACL,0BAA0B,EAC1B,kCAAkC,EAClC,SAAS,CACV,CAAC;IACF,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,0CAA0C,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAChG,oCAAoC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAmC,CAAC,CAAC;AAC7G,CAAC,CAAC;AAEF,yDAAyD;AACzD,MAAM,kCAAkC,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;EAoBpD,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ColorLut, WgpuColorLutTextureCache, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types';
|
|
2
|
+
export declare function applyColorLutPassToWgpu(state: WgpuRenderState, source: Readonly<WgpuRenderTarget>, dest: Readonly<WgpuRenderTarget>, lut: Readonly<ColorLut>, cache: WgpuColorLutTextureCache): void;
|
|
3
|
+
//# sourceMappingURL=wgpuColorLutPass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuColorLutPass.d.ts","sourceRoot":"","sources":["../src/wgpuColorLutPass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAc7G,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,EACvB,KAAK,EAAE,wBAAwB,GAC9B,IAAI,CAiCN"}
|