@luma.gl/effects 7.4.0-alpha.2 → 9.1.0-beta.3
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/LICENSE +10 -1
- package/README.md +2 -2
- package/dist/dist.dev.js +3458 -0
- package/dist/dist.min.js +18 -30
- package/dist/index.cjs +1724 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/passes/postprocessing/fxaa/fxaa.d.ts +15 -0
- package/dist/passes/postprocessing/fxaa/fxaa.d.ts.map +1 -0
- package/{src/shader-modules → dist/passes/postprocessing}/fxaa/fxaa.js +18 -14
- package/dist/passes/postprocessing/fxaa/fxaa.js.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.d.ts +43 -0
- package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.js +68 -0
- package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.js.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/denoise.d.ts +43 -0
- package/dist/passes/postprocessing/image-adjust-filters/denoise.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/denoise.js +74 -0
- package/dist/passes/postprocessing/image-adjust-filters/denoise.js.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/huesaturation.d.ts +46 -0
- package/dist/passes/postprocessing/image-adjust-filters/huesaturation.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/huesaturation.js +101 -0
- package/dist/passes/postprocessing/image-adjust-filters/huesaturation.js.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/noise.d.ts +33 -0
- package/dist/passes/postprocessing/image-adjust-filters/noise.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/noise.js +58 -0
- package/dist/passes/postprocessing/image-adjust-filters/noise.js.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/sepia.d.ts +29 -0
- package/dist/passes/postprocessing/image-adjust-filters/sepia.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/sepia.js +44 -0
- package/dist/passes/postprocessing/image-adjust-filters/sepia.js.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/vibrance.d.ts +29 -0
- package/dist/passes/postprocessing/image-adjust-filters/vibrance.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/vibrance.js +35 -0
- package/dist/passes/postprocessing/image-adjust-filters/vibrance.js.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/vignette.d.ts +44 -0
- package/dist/passes/postprocessing/image-adjust-filters/vignette.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/vignette.js +39 -0
- package/dist/passes/postprocessing/image-adjust-filters/vignette.js.map +1 -0
- package/dist/passes/postprocessing/image-blur-filters/tiltshift.d.ts +79 -0
- package/dist/passes/postprocessing/image-blur-filters/tiltshift.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-blur-filters/tiltshift.js +111 -0
- package/dist/passes/postprocessing/image-blur-filters/tiltshift.js.map +1 -0
- package/dist/passes/postprocessing/image-blur-filters/triangleblur.d.ts +56 -0
- package/dist/passes/postprocessing/image-blur-filters/triangleblur.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-blur-filters/triangleblur.js +65 -0
- package/dist/passes/postprocessing/image-blur-filters/triangleblur.js.map +1 -0
- package/dist/passes/postprocessing/image-blur-filters/zoomblur.d.ts +42 -0
- package/dist/passes/postprocessing/image-blur-filters/zoomblur.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-blur-filters/zoomblur.js +59 -0
- package/dist/passes/postprocessing/image-blur-filters/zoomblur.js.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/colorhalftone.d.ts +52 -0
- package/dist/passes/postprocessing/image-fun-filters/colorhalftone.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/colorhalftone.js +64 -0
- package/dist/passes/postprocessing/image-fun-filters/colorhalftone.js.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/dotscreen.d.ts +50 -0
- package/dist/passes/postprocessing/image-fun-filters/dotscreen.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/dotscreen.js +50 -0
- package/dist/passes/postprocessing/image-fun-filters/dotscreen.js.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/edgework.d.ts +54 -0
- package/dist/passes/postprocessing/image-fun-filters/edgework.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/edgework.js +101 -0
- package/dist/passes/postprocessing/image-fun-filters/edgework.js.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/hexagonalpixelate.d.ts +43 -0
- package/dist/passes/postprocessing/image-fun-filters/hexagonalpixelate.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/hexagonalpixelate.js +68 -0
- package/dist/passes/postprocessing/image-fun-filters/hexagonalpixelate.js.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/ink.d.ts +40 -0
- package/dist/passes/postprocessing/image-fun-filters/ink.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/ink.js +52 -0
- package/dist/passes/postprocessing/image-fun-filters/ink.js.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/magnify.d.ts +45 -0
- package/dist/passes/postprocessing/image-fun-filters/magnify.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/magnify.js +49 -0
- package/dist/passes/postprocessing/image-fun-filters/magnify.js.map +1 -0
- package/dist/passes/postprocessing/image-warp-filters/bulgepinch.d.ts +49 -0
- package/dist/passes/postprocessing/image-warp-filters/bulgepinch.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-warp-filters/bulgepinch.js +56 -0
- package/dist/passes/postprocessing/image-warp-filters/bulgepinch.js.map +1 -0
- package/dist/passes/postprocessing/image-warp-filters/swirl.d.ts +50 -0
- package/dist/passes/postprocessing/image-warp-filters/swirl.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-warp-filters/swirl.js +57 -0
- package/dist/passes/postprocessing/image-warp-filters/swirl.js.map +1 -0
- package/dist/passes/postprocessing/image-warp-filters/warp.d.ts +8 -0
- package/dist/passes/postprocessing/image-warp-filters/warp.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-warp-filters/warp.js +21 -0
- package/dist/passes/postprocessing/image-warp-filters/warp.js.map +1 -0
- package/package.json +37 -13
- package/src/index.ts +99 -0
- package/src/passes/postprocessing/fxaa/fxaa.ts +694 -0
- package/src/passes/postprocessing/image-adjust-filters/brightnesscontrast.ts +81 -0
- package/src/passes/postprocessing/image-adjust-filters/denoise.ts +97 -0
- package/src/passes/postprocessing/image-adjust-filters/huesaturation.ts +120 -0
- package/src/passes/postprocessing/image-adjust-filters/noise.ts +73 -0
- package/src/passes/postprocessing/image-adjust-filters/sepia.ts +54 -0
- package/src/passes/postprocessing/image-adjust-filters/vibrance.ts +48 -0
- package/src/passes/postprocessing/image-adjust-filters/vignette.ts +58 -0
- package/src/passes/postprocessing/image-blur-filters/tiltshift.ts +135 -0
- package/src/passes/postprocessing/image-blur-filters/triangleblur.ts +84 -0
- package/src/passes/postprocessing/image-blur-filters/zoomblur.ts +75 -0
- package/src/passes/postprocessing/image-fun-filters/colorhalftone.ts +85 -0
- package/src/passes/postprocessing/image-fun-filters/dotscreen.ts +70 -0
- package/src/passes/postprocessing/image-fun-filters/edgework.ts +120 -0
- package/src/passes/postprocessing/image-fun-filters/hexagonalpixelate.ts +86 -0
- package/src/passes/postprocessing/image-fun-filters/ink.ts +73 -0
- package/src/passes/postprocessing/image-fun-filters/magnify.ts +70 -0
- package/src/passes/postprocessing/image-warp-filters/bulgepinch.ts +72 -0
- package/src/passes/postprocessing/image-warp-filters/swirl.ts +77 -0
- package/src/passes/postprocessing/image-warp-filters/warp.ts +28 -0
- package/dist/dist.js +0 -3621
- package/dist/es5/experimental/passes/outline-pass.js +0 -125
- package/dist/es5/experimental/passes/outline-pass.js.map +0 -1
- package/dist/es5/experimental/passes/ssao-pass.js +0 -133
- package/dist/es5/experimental/passes/ssao-pass.js.map +0 -1
- package/dist/es5/experimental/shader-modules/convolution.js +0 -46
- package/dist/es5/experimental/shader-modules/convolution.js.map +0 -1
- package/dist/es5/experimental/shader-modules/depth.js +0 -27
- package/dist/es5/experimental/shader-modules/depth.js.map +0 -1
- package/dist/es5/experimental/shader-modules/pack.js +0 -19
- package/dist/es5/experimental/shader-modules/pack.js.map +0 -1
- package/dist/es5/experimental/shader-modules/ssao.js +0 -32
- package/dist/es5/experimental/shader-modules/ssao.js.map +0 -1
- package/dist/es5/index.js +0 -184
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/shader-modules/adjust-filters/brightnesscontrast.js +0 -29
- package/dist/es5/shader-modules/adjust-filters/brightnesscontrast.js.map +0 -1
- package/dist/es5/shader-modules/adjust-filters/denoise.js +0 -29
- package/dist/es5/shader-modules/adjust-filters/denoise.js.map +0 -1
- package/dist/es5/shader-modules/adjust-filters/huesaturation.js +0 -29
- package/dist/es5/shader-modules/adjust-filters/huesaturation.js.map +0 -1
- package/dist/es5/shader-modules/adjust-filters/noise.js +0 -24
- package/dist/es5/shader-modules/adjust-filters/noise.js.map +0 -1
- package/dist/es5/shader-modules/adjust-filters/sepia.js +0 -24
- package/dist/es5/shader-modules/adjust-filters/sepia.js.map +0 -1
- package/dist/es5/shader-modules/adjust-filters/vibrance.js +0 -24
- package/dist/es5/shader-modules/adjust-filters/vibrance.js.map +0 -1
- package/dist/es5/shader-modules/adjust-filters/vignette.js +0 -29
- package/dist/es5/shader-modules/adjust-filters/vignette.js.map +0 -1
- package/dist/es5/shader-modules/blur-filters/tiltshift.js +0 -49
- package/dist/es5/shader-modules/blur-filters/tiltshift.js.map +0 -1
- package/dist/es5/shader-modules/blur-filters/triangleblur.js +0 -42
- package/dist/es5/shader-modules/blur-filters/triangleblur.js.map +0 -1
- package/dist/es5/shader-modules/blur-filters/zoomblur.js +0 -31
- package/dist/es5/shader-modules/blur-filters/zoomblur.js.map +0 -1
- package/dist/es5/shader-modules/fun-filters/colorhalftone.js +0 -31
- package/dist/es5/shader-modules/fun-filters/colorhalftone.js.map +0 -1
- package/dist/es5/shader-modules/fun-filters/dotscreen.js +0 -31
- package/dist/es5/shader-modules/fun-filters/dotscreen.js.map +0 -1
- package/dist/es5/shader-modules/fun-filters/edgework.js +0 -42
- package/dist/es5/shader-modules/fun-filters/edgework.js.map +0 -1
- package/dist/es5/shader-modules/fun-filters/hexagonalpixelate.js +0 -29
- package/dist/es5/shader-modules/fun-filters/hexagonalpixelate.js.map +0 -1
- package/dist/es5/shader-modules/fun-filters/ink.js +0 -24
- package/dist/es5/shader-modules/fun-filters/ink.js.map +0 -1
- package/dist/es5/shader-modules/fxaa/fxaa.js +0 -47
- package/dist/es5/shader-modules/fxaa/fxaa.js.map +0 -1
- package/dist/es5/shader-modules/utils/random.js +0 -13
- package/dist/es5/shader-modules/utils/random.js.map +0 -1
- package/dist/es5/shader-modules/warp-filters/bulgepinch.js +0 -36
- package/dist/es5/shader-modules/warp-filters/bulgepinch.js.map +0 -1
- package/dist/es5/shader-modules/warp-filters/swirl.js +0 -36
- package/dist/es5/shader-modules/warp-filters/swirl.js.map +0 -1
- package/dist/es5/shader-modules/warp-filters/warp.js +0 -13
- package/dist/es5/shader-modules/warp-filters/warp.js.map +0 -1
- package/dist/es6/experimental/passes/outline-pass.js +0 -48
- package/dist/es6/experimental/passes/outline-pass.js.map +0 -1
- package/dist/es6/experimental/passes/ssao-pass.js +0 -76
- package/dist/es6/experimental/passes/ssao-pass.js.map +0 -1
- package/dist/es6/experimental/shader-modules/convolution.js +0 -37
- package/dist/es6/experimental/shader-modules/convolution.js.map +0 -1
- package/dist/es6/experimental/shader-modules/depth.js +0 -13
- package/dist/es6/experimental/shader-modules/depth.js.map +0 -1
- package/dist/es6/experimental/shader-modules/pack.js +0 -10
- package/dist/es6/experimental/shader-modules/pack.js.map +0 -1
- package/dist/es6/experimental/shader-modules/ssao.js +0 -21
- package/dist/es6/experimental/shader-modules/ssao.js.map +0 -1
- package/dist/es6/index.js +0 -23
- package/dist/es6/index.js.map +0 -1
- package/dist/es6/shader-modules/adjust-filters/brightnesscontrast.js +0 -22
- package/dist/es6/shader-modules/adjust-filters/brightnesscontrast.js.map +0 -1
- package/dist/es6/shader-modules/adjust-filters/denoise.js +0 -20
- package/dist/es6/shader-modules/adjust-filters/denoise.js.map +0 -1
- package/dist/es6/shader-modules/adjust-filters/huesaturation.js +0 -22
- package/dist/es6/shader-modules/adjust-filters/huesaturation.js.map +0 -1
- package/dist/es6/shader-modules/adjust-filters/noise.js +0 -17
- package/dist/es6/shader-modules/adjust-filters/noise.js.map +0 -1
- package/dist/es6/shader-modules/adjust-filters/sepia.js +0 -17
- package/dist/es6/shader-modules/adjust-filters/sepia.js.map +0 -1
- package/dist/es6/shader-modules/adjust-filters/vibrance.js +0 -17
- package/dist/es6/shader-modules/adjust-filters/vibrance.js.map +0 -1
- package/dist/es6/shader-modules/adjust-filters/vignette.js +0 -22
- package/dist/es6/shader-modules/adjust-filters/vignette.js.map +0 -1
- package/dist/es6/shader-modules/blur-filters/tiltshift.js +0 -38
- package/dist/es6/shader-modules/blur-filters/tiltshift.js.map +0 -1
- package/dist/es6/shader-modules/blur-filters/triangleblur.js +0 -31
- package/dist/es6/shader-modules/blur-filters/triangleblur.js.map +0 -1
- package/dist/es6/shader-modules/blur-filters/zoomblur.js +0 -20
- package/dist/es6/shader-modules/blur-filters/zoomblur.js.map +0 -1
- package/dist/es6/shader-modules/fun-filters/colorhalftone.js +0 -24
- package/dist/es6/shader-modules/fun-filters/colorhalftone.js.map +0 -1
- package/dist/es6/shader-modules/fun-filters/dotscreen.js +0 -24
- package/dist/es6/shader-modules/fun-filters/dotscreen.js.map +0 -1
- package/dist/es6/shader-modules/fun-filters/edgework.js +0 -31
- package/dist/es6/shader-modules/fun-filters/edgework.js.map +0 -1
- package/dist/es6/shader-modules/fun-filters/hexagonalpixelate.js +0 -22
- package/dist/es6/shader-modules/fun-filters/hexagonalpixelate.js.map +0 -1
- package/dist/es6/shader-modules/fun-filters/ink.js +0 -17
- package/dist/es6/shader-modules/fun-filters/ink.js.map +0 -1
- package/dist/es6/shader-modules/fxaa/fxaa.js +0 -39
- package/dist/es6/shader-modules/fxaa/fxaa.js.map +0 -1
- package/dist/es6/shader-modules/utils/random.js +0 -6
- package/dist/es6/shader-modules/utils/random.js.map +0 -1
- package/dist/es6/shader-modules/warp-filters/bulgepinch.js +0 -25
- package/dist/es6/shader-modules/warp-filters/bulgepinch.js.map +0 -1
- package/dist/es6/shader-modules/warp-filters/swirl.js +0 -25
- package/dist/es6/shader-modules/warp-filters/swirl.js.map +0 -1
- package/dist/es6/shader-modules/warp-filters/warp.js +0 -6
- package/dist/es6/shader-modules/warp-filters/warp.js.map +0 -1
- package/dist/esm/experimental/passes/outline-pass.js +0 -114
- package/dist/esm/experimental/passes/outline-pass.js.map +0 -1
- package/dist/esm/experimental/passes/ssao-pass.js +0 -120
- package/dist/esm/experimental/passes/ssao-pass.js.map +0 -1
- package/dist/esm/experimental/shader-modules/convolution.js +0 -39
- package/dist/esm/experimental/shader-modules/convolution.js.map +0 -1
- package/dist/esm/experimental/shader-modules/depth.js +0 -16
- package/dist/esm/experimental/shader-modules/depth.js.map +0 -1
- package/dist/esm/experimental/shader-modules/pack.js +0 -12
- package/dist/esm/experimental/shader-modules/pack.js.map +0 -1
- package/dist/esm/experimental/shader-modules/ssao.js +0 -21
- package/dist/esm/experimental/shader-modules/ssao.js.map +0 -1
- package/dist/esm/index.js +0 -23
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/shader-modules/adjust-filters/brightnesscontrast.js +0 -22
- package/dist/esm/shader-modules/adjust-filters/brightnesscontrast.js.map +0 -1
- package/dist/esm/shader-modules/adjust-filters/denoise.js +0 -22
- package/dist/esm/shader-modules/adjust-filters/denoise.js.map +0 -1
- package/dist/esm/shader-modules/adjust-filters/huesaturation.js +0 -22
- package/dist/esm/shader-modules/adjust-filters/huesaturation.js.map +0 -1
- package/dist/esm/shader-modules/adjust-filters/noise.js +0 -17
- package/dist/esm/shader-modules/adjust-filters/noise.js.map +0 -1
- package/dist/esm/shader-modules/adjust-filters/sepia.js +0 -17
- package/dist/esm/shader-modules/adjust-filters/sepia.js.map +0 -1
- package/dist/esm/shader-modules/adjust-filters/vibrance.js +0 -17
- package/dist/esm/shader-modules/adjust-filters/vibrance.js.map +0 -1
- package/dist/esm/shader-modules/adjust-filters/vignette.js +0 -22
- package/dist/esm/shader-modules/adjust-filters/vignette.js.map +0 -1
- package/dist/esm/shader-modules/blur-filters/tiltshift.js +0 -38
- package/dist/esm/shader-modules/blur-filters/tiltshift.js.map +0 -1
- package/dist/esm/shader-modules/blur-filters/triangleblur.js +0 -31
- package/dist/esm/shader-modules/blur-filters/triangleblur.js.map +0 -1
- package/dist/esm/shader-modules/blur-filters/zoomblur.js +0 -20
- package/dist/esm/shader-modules/blur-filters/zoomblur.js.map +0 -1
- package/dist/esm/shader-modules/fun-filters/colorhalftone.js +0 -24
- package/dist/esm/shader-modules/fun-filters/colorhalftone.js.map +0 -1
- package/dist/esm/shader-modules/fun-filters/dotscreen.js +0 -24
- package/dist/esm/shader-modules/fun-filters/dotscreen.js.map +0 -1
- package/dist/esm/shader-modules/fun-filters/edgework.js +0 -31
- package/dist/esm/shader-modules/fun-filters/edgework.js.map +0 -1
- package/dist/esm/shader-modules/fun-filters/hexagonalpixelate.js +0 -22
- package/dist/esm/shader-modules/fun-filters/hexagonalpixelate.js.map +0 -1
- package/dist/esm/shader-modules/fun-filters/ink.js +0 -17
- package/dist/esm/shader-modules/fun-filters/ink.js.map +0 -1
- package/dist/esm/shader-modules/fxaa/fxaa.js +0 -39
- package/dist/esm/shader-modules/fxaa/fxaa.js.map +0 -1
- package/dist/esm/shader-modules/utils/random.js +0 -6
- package/dist/esm/shader-modules/utils/random.js.map +0 -1
- package/dist/esm/shader-modules/warp-filters/bulgepinch.js +0 -25
- package/dist/esm/shader-modules/warp-filters/bulgepinch.js.map +0 -1
- package/dist/esm/shader-modules/warp-filters/swirl.js +0 -25
- package/dist/esm/shader-modules/warp-filters/swirl.js.map +0 -1
- package/dist/esm/shader-modules/warp-filters/warp.js +0 -6
- package/dist/esm/shader-modules/warp-filters/warp.js.map +0 -1
- package/src/experimental/passes/outline-pass.js +0 -58
- package/src/experimental/passes/ssao-pass.js +0 -73
- package/src/experimental/passes/ssao-pass.md +0 -15
- package/src/experimental/shader-modules/convolution.js +0 -96
- package/src/experimental/shader-modules/convolution.md +0 -15
- package/src/experimental/shader-modules/depth.js +0 -84
- package/src/experimental/shader-modules/depth.md +0 -76
- package/src/experimental/shader-modules/pack.js +0 -32
- package/src/experimental/shader-modules/pack.md +0 -15
- package/src/experimental/shader-modules/ssao.js +0 -183
- package/src/experimental/shader-modules/ssao.md +0 -4
- package/src/index.js +0 -35
- package/src/shader-modules/adjust-filters/brightnesscontrast.js +0 -38
- package/src/shader-modules/adjust-filters/denoise.js +0 -49
- package/src/shader-modules/adjust-filters/huesaturation.js +0 -57
- package/src/shader-modules/adjust-filters/noise.js +0 -36
- package/src/shader-modules/adjust-filters/sepia.js +0 -37
- package/src/shader-modules/adjust-filters/vibrance.js +0 -32
- package/src/shader-modules/adjust-filters/vignette.js +0 -33
- package/src/shader-modules/blur-filters/tiltshift.js +0 -105
- package/src/shader-modules/blur-filters/triangleblur.js +0 -55
- package/src/shader-modules/blur-filters/zoomblur.js +0 -56
- package/src/shader-modules/fun-filters/colorhalftone.js +0 -60
- package/src/shader-modules/fun-filters/dotscreen.js +0 -45
- package/src/shader-modules/fun-filters/edgework.js +0 -84
- package/src/shader-modules/fun-filters/hexagonalpixelate.js +0 -63
- package/src/shader-modules/fun-filters/ink.js +0 -49
- package/src/shader-modules/utils/random.js +0 -12
- package/src/shader-modules/warp-filters/bulgepinch.js +0 -52
- package/src/shader-modules/warp-filters/swirl.js +0 -55
- package/src/shader-modules/warp-filters/warp.js +0 -19
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Denoise -
|
|
3
|
+
* Smooths over grainy noise in dark images using an 9x9 box filter
|
|
4
|
+
* weighted by color intensity, similar to a bilateral filter.
|
|
5
|
+
*/
|
|
6
|
+
export type DenoiseProps = {
|
|
7
|
+
/**
|
|
8
|
+
* The exponent of the color intensity difference, should be greater
|
|
9
|
+
* than zero. A value of zero just gives an 9x9 box blur and high values
|
|
10
|
+
* give the original image, but ideal values are usually around 10-20.
|
|
11
|
+
*/
|
|
12
|
+
strength?: number;
|
|
13
|
+
};
|
|
14
|
+
export type DenoiseUniforms = DenoiseProps;
|
|
15
|
+
/**
|
|
16
|
+
* Denoise -
|
|
17
|
+
* Smooths over grainy noise in dark images using an 9x9 box filter
|
|
18
|
+
* weighted by color intensity, similar to a bilateral filter.
|
|
19
|
+
*/
|
|
20
|
+
export declare const denoise: {
|
|
21
|
+
readonly props: DenoiseProps;
|
|
22
|
+
readonly uniforms: DenoiseUniforms;
|
|
23
|
+
readonly name: "denoise";
|
|
24
|
+
readonly uniformTypes: {
|
|
25
|
+
readonly strength: "f32";
|
|
26
|
+
};
|
|
27
|
+
readonly propTypes: {
|
|
28
|
+
readonly strength: {
|
|
29
|
+
readonly format: "f32";
|
|
30
|
+
readonly value: 0.5;
|
|
31
|
+
readonly min: 0;
|
|
32
|
+
readonly max: 1;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
readonly source: "\n@group(?), @binding(?) var<uniform> denoiseUniforms {\t\tstrength: f32 } noise;\n\nfn denoise_sampleColor(source: sampler2D, texSize: vec2<f32>, texCoord: vec2<f32>) -> vec4<f32> {\n\tlet adjustedExponent: f32 = 3. + 200. * pow(1. - noise.strength, 4.);\n\tlet center: vec4<f32> = sample_texture(BUFFER_source, texCoord);\n\tvar color: vec4<f32> = vec4<f32>(0.);\n\tvar total: f32 = 0.;\n\n\tfor (var x: f32 = -4.; x <= 4.; x = x + (1.)) {\n\n\t\tfor (var y: f32 = -4.; y <= 4.; y = y + (1.)) {\n\t\t\tlet offsetColor: vec4<f32> = sample_texture(BUFFER_source, texCoord + vec2<f32>(x, y) / texSize);\n\t\t\tvar weight: f32 = 1. - abs(dot(offsetColor.rgb - center.rgb, vec3<f32>(0.25)));\n\t\t\tweight = pow(weight, adjustedExponent);\n\t\t\tcolor = color + (offsetColor * weight);\n\t\t\ttotal = total + (weight);\n\t\t}\n\n\t}\n\n\treturn color / total;\n} \n";
|
|
36
|
+
readonly fs: "uniform denoiseUniforms {\n float strength;\n} noise;\n\nvec4 denoise_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {\n float adjustedExponent = 3. + 200. * pow(1. - noise.strength, 4.);\n\n vec4 center = texture(source, texCoord);\n vec4 color = vec4(0.0);\n float total = 0.0;\n for (float x = -4.0; x <= 4.0; x += 1.0) {\n for (float y = -4.0; y <= 4.0; y += 1.0) {\n vec4 offsetColor = texture(source, texCoord + vec2(x, y) / texSize);\n float weight = 1.0 - abs(dot(offsetColor.rgb - center.rgb, vec3(0.25)));\n weight = pow(weight, adjustedExponent);\n color += offsetColor * weight;\n total += weight;\n }\n }\n\n return color / total;\n}\n";
|
|
37
|
+
readonly passes: [{
|
|
38
|
+
readonly sampler: true;
|
|
39
|
+
}, {
|
|
40
|
+
readonly sampler: true;
|
|
41
|
+
}];
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=denoise.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"denoise.d.ts","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-adjust-filters/denoise.ts"],"names":[],"mappings":"AA0DA;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,OAAO;oBACL,YAAY;uBACT,eAAe;;;;;;;;;;;;;;;;;;;;CAe6B,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
// Do a 9x9 bilateral box filter
|
|
5
|
+
const source = /* wgsl */ `\
|
|
6
|
+
|
|
7
|
+
@group(?), @binding(?) var<uniform> denoiseUniforms { strength: f32 } noise;
|
|
8
|
+
|
|
9
|
+
fn denoise_sampleColor(source: sampler2D, texSize: vec2<f32>, texCoord: vec2<f32>) -> vec4<f32> {
|
|
10
|
+
let adjustedExponent: f32 = 3. + 200. * pow(1. - noise.strength, 4.);
|
|
11
|
+
let center: vec4<f32> = sample_texture(BUFFER_source, texCoord);
|
|
12
|
+
var color: vec4<f32> = vec4<f32>(0.);
|
|
13
|
+
var total: f32 = 0.;
|
|
14
|
+
|
|
15
|
+
for (var x: f32 = -4.; x <= 4.; x = x + (1.)) {
|
|
16
|
+
|
|
17
|
+
for (var y: f32 = -4.; y <= 4.; y = y + (1.)) {
|
|
18
|
+
let offsetColor: vec4<f32> = sample_texture(BUFFER_source, texCoord + vec2<f32>(x, y) / texSize);
|
|
19
|
+
var weight: f32 = 1. - abs(dot(offsetColor.rgb - center.rgb, vec3<f32>(0.25)));
|
|
20
|
+
weight = pow(weight, adjustedExponent);
|
|
21
|
+
color = color + (offsetColor * weight);
|
|
22
|
+
total = total + (weight);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return color / total;
|
|
28
|
+
}
|
|
29
|
+
`;
|
|
30
|
+
const fs = /* glsl */ `\
|
|
31
|
+
uniform denoiseUniforms {
|
|
32
|
+
float strength;
|
|
33
|
+
} noise;
|
|
34
|
+
|
|
35
|
+
vec4 denoise_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
|
|
36
|
+
float adjustedExponent = 3. + 200. * pow(1. - noise.strength, 4.);
|
|
37
|
+
|
|
38
|
+
vec4 center = texture(source, texCoord);
|
|
39
|
+
vec4 color = vec4(0.0);
|
|
40
|
+
float total = 0.0;
|
|
41
|
+
for (float x = -4.0; x <= 4.0; x += 1.0) {
|
|
42
|
+
for (float y = -4.0; y <= 4.0; y += 1.0) {
|
|
43
|
+
vec4 offsetColor = texture(source, texCoord + vec2(x, y) / texSize);
|
|
44
|
+
float weight = 1.0 - abs(dot(offsetColor.rgb - center.rgb, vec3(0.25)));
|
|
45
|
+
weight = pow(weight, adjustedExponent);
|
|
46
|
+
color += offsetColor * weight;
|
|
47
|
+
total += weight;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return color / total;
|
|
52
|
+
}
|
|
53
|
+
`;
|
|
54
|
+
/**
|
|
55
|
+
* Denoise -
|
|
56
|
+
* Smooths over grainy noise in dark images using an 9x9 box filter
|
|
57
|
+
* weighted by color intensity, similar to a bilateral filter.
|
|
58
|
+
*/
|
|
59
|
+
export const denoise = {
|
|
60
|
+
props: {},
|
|
61
|
+
uniforms: {},
|
|
62
|
+
name: 'denoise',
|
|
63
|
+
uniformTypes: {
|
|
64
|
+
strength: 'f32'
|
|
65
|
+
},
|
|
66
|
+
propTypes: {
|
|
67
|
+
strength: { format: 'f32', value: 0.5, min: 0, max: 1 }
|
|
68
|
+
// strength: {..., adjust: (strength: number): number => 0.53 + 200 * Math.pow(1 - strength, 4) // TODO - JS preprocessing
|
|
69
|
+
},
|
|
70
|
+
source,
|
|
71
|
+
fs,
|
|
72
|
+
passes: [{ sampler: true }, { sampler: true }]
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=denoise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"denoise.js","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-adjust-filters/denoise.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,gCAAgC;AAChC,MAAM,MAAM,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;CAwBzB,CAAC;AAEF,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAuBrB,CAAC;AAkBF;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,KAAK,EAAE,EAAkB;IACzB,QAAQ,EAAE,EAAqB;IAE/B,IAAI,EAAE,SAAS;IACf,YAAY,EAAE;QACZ,QAAQ,EAAE,KAAK;KAChB;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,EAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC;QACrD,0HAA0H;KAC3H;IAED,MAAM;IACN,EAAE;IAEF,MAAM,EAAE,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;CACkB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hue / Saturation
|
|
3
|
+
*/
|
|
4
|
+
export type HueSaturationProps = {
|
|
5
|
+
/** -1 to 1 (-1 is 180 degree rotation in the negative direction, 0 is no change,
|
|
6
|
+
* and 1 is 180 degree rotation in the positive direction) */
|
|
7
|
+
hue?: number;
|
|
8
|
+
/** -1 to 1 (-1 is solid gray, 0 is no change, and 1 is maximum contrast) */
|
|
9
|
+
saturation?: number;
|
|
10
|
+
};
|
|
11
|
+
export type HueSaturationUniforms = HueSaturationProps;
|
|
12
|
+
/**
|
|
13
|
+
* Hue / Saturation
|
|
14
|
+
* Provides rotational hue and multiplicative saturation control. RGB color space
|
|
15
|
+
* can be imagined as a cube where the axes are the red, green, and blue color
|
|
16
|
+
* values. Hue changing works by rotating the color vector around the grayscale
|
|
17
|
+
* line, which is the straight line from black (0, 0, 0) to white (1, 1, 1).
|
|
18
|
+
* Saturation is implemented by scaling all color channel values either toward
|
|
19
|
+
* or away from the average color channel value.
|
|
20
|
+
*/
|
|
21
|
+
export declare const hueSaturation: {
|
|
22
|
+
readonly props: HueSaturationProps;
|
|
23
|
+
readonly name: "hueSaturation";
|
|
24
|
+
readonly source: "@group(?), @binding(?)\nvar<uniform> hueSaturationUniforms {\t\thue: f32,\n\n\t\tsaturation: f32,\n\n}hueSaturation;\n\nfn hueSaturation_filterColor(color: vec4<f32>) -> vec4<f32> {\n\tlet angle: f32 = hueSaturation.hue * 3.1415927;\n\tlet s: f32 = sin(angle);\n\tlet c: f32 = cos(angle);\n\tlet weights: vec3<f32> = (vec3<f32>(2. * c, -sqrt(3.) * s - c, sqrt(3.) * s - c) + 1.) / 3.;\n\tlet len: f32 = length(color.rgb);\n\tvar colorrgb = color.rgb;\n\tcolorrgb = vec3<f32>(dot(color.rgb, weights.xyz), dot(color.rgb, weights.zxy), dot(color.rgb, weights.yzx));\n\tcolor.r = colorrgb.x;\n\tcolor.g = colorrgb.y;\n\tcolor.b = colorrgb.z;\n\tlet average: f32 = (color.r + color.g + color.b) / 3.;\n\tif (hueSaturation.saturation > 0.) {\n\t\tvar colorrgb = color.rgb;\n\tcolorrgb = color.rgb + ((average - color.rgb) * (1. - 1. / (1.001 - hueSaturation.saturation)));\n\tcolor.r = colorrgb.x;\n\tcolor.g = colorrgb.y;\n\tcolor.b = colorrgb.z;\n\t} else { \n\t\tvar colorrgb = color.rgb;\n\tcolorrgb = color.rgb + ((average - color.rgb) * -hueSaturation.saturation);\n\tcolor.r = colorrgb.x;\n\tcolor.g = colorrgb.y;\n\tcolor.b = colorrgb.z;\n\t}\n\treturn color;\n} \n\nfn hueSaturation_filterColor_ext(color: vec4<f32>, texSize: vec2<f32>, texCoord: vec2<f32>) -> vec4<f32> {\n\treturn hueSaturation_filterColor(color);\n} \n";
|
|
25
|
+
readonly fs: "uniform hueSaturationUniforms {\n float hue;\n float saturation;\n} hueSaturation;\n\nvec4 hueSaturation_filterColor(vec4 color) {\n // hue adjustment, wolfram alpha: RotationTransform[angle, {1, 1, 1}][{x, y, z}]\n float angle = hueSaturation.hue * 3.14159265;\n float s = sin(angle), c = cos(angle);\n vec3 weights = (vec3(2.0 * c, -sqrt(3.0) * s - c, sqrt(3.0) * s - c) + 1.0) / 3.0;\n float len = length(color.rgb);\n color.rgb = vec3(\n dot(color.rgb, weights.xyz),\n dot(color.rgb, weights.zxy),\n dot(color.rgb, weights.yzx)\n );\n\n // saturation adjustment\n float average = (color.r + color.g + color.b) / 3.0;\n if (hueSaturation.saturation > 0.0) {\n color.rgb += (average - color.rgb) * (1.0 - 1.0 / (1.001 - hueSaturation.saturation));\n } else {\n color.rgb += (average - color.rgb) * (-hueSaturation.saturation);\n }\n\n return color;\n}\n\nvec4 hueSaturation_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {\n return hueSaturation_filterColor(color);\n}\n";
|
|
26
|
+
readonly uniformTypes: {
|
|
27
|
+
readonly hue: "f32";
|
|
28
|
+
readonly saturation: "f32";
|
|
29
|
+
};
|
|
30
|
+
readonly propTypes: {
|
|
31
|
+
readonly hue: {
|
|
32
|
+
readonly value: 0;
|
|
33
|
+
readonly min: -1;
|
|
34
|
+
readonly max: 1;
|
|
35
|
+
};
|
|
36
|
+
readonly saturation: {
|
|
37
|
+
readonly value: 0;
|
|
38
|
+
readonly min: -1;
|
|
39
|
+
readonly max: 1;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
readonly passes: [{
|
|
43
|
+
readonly filter: true;
|
|
44
|
+
}];
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=huesaturation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"huesaturation.d.ts","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-adjust-filters/huesaturation.ts"],"names":[],"mappings":"AAiFA;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;iEAC6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAEvD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;oBACX,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;CAekB,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
const source = /* wgsl */ `\
|
|
5
|
+
@group(?), @binding(?)
|
|
6
|
+
var<uniform> hueSaturationUniforms { hue: f32,
|
|
7
|
+
|
|
8
|
+
saturation: f32,
|
|
9
|
+
|
|
10
|
+
}hueSaturation;
|
|
11
|
+
|
|
12
|
+
fn hueSaturation_filterColor(color: vec4<f32>) -> vec4<f32> {
|
|
13
|
+
let angle: f32 = hueSaturation.hue * 3.1415927;
|
|
14
|
+
let s: f32 = sin(angle);
|
|
15
|
+
let c: f32 = cos(angle);
|
|
16
|
+
let weights: vec3<f32> = (vec3<f32>(2. * c, -sqrt(3.) * s - c, sqrt(3.) * s - c) + 1.) / 3.;
|
|
17
|
+
let len: f32 = length(color.rgb);
|
|
18
|
+
var colorrgb = color.rgb;
|
|
19
|
+
colorrgb = vec3<f32>(dot(color.rgb, weights.xyz), dot(color.rgb, weights.zxy), dot(color.rgb, weights.yzx));
|
|
20
|
+
color.r = colorrgb.x;
|
|
21
|
+
color.g = colorrgb.y;
|
|
22
|
+
color.b = colorrgb.z;
|
|
23
|
+
let average: f32 = (color.r + color.g + color.b) / 3.;
|
|
24
|
+
if (hueSaturation.saturation > 0.) {
|
|
25
|
+
var colorrgb = color.rgb;
|
|
26
|
+
colorrgb = color.rgb + ((average - color.rgb) * (1. - 1. / (1.001 - hueSaturation.saturation)));
|
|
27
|
+
color.r = colorrgb.x;
|
|
28
|
+
color.g = colorrgb.y;
|
|
29
|
+
color.b = colorrgb.z;
|
|
30
|
+
} else {
|
|
31
|
+
var colorrgb = color.rgb;
|
|
32
|
+
colorrgb = color.rgb + ((average - color.rgb) * -hueSaturation.saturation);
|
|
33
|
+
color.r = colorrgb.x;
|
|
34
|
+
color.g = colorrgb.y;
|
|
35
|
+
color.b = colorrgb.z;
|
|
36
|
+
}
|
|
37
|
+
return color;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
fn hueSaturation_filterColor_ext(color: vec4<f32>, texSize: vec2<f32>, texCoord: vec2<f32>) -> vec4<f32> {
|
|
41
|
+
return hueSaturation_filterColor(color);
|
|
42
|
+
}
|
|
43
|
+
`;
|
|
44
|
+
const fs = /* glsl */ `\
|
|
45
|
+
uniform hueSaturationUniforms {
|
|
46
|
+
float hue;
|
|
47
|
+
float saturation;
|
|
48
|
+
} hueSaturation;
|
|
49
|
+
|
|
50
|
+
vec4 hueSaturation_filterColor(vec4 color) {
|
|
51
|
+
// hue adjustment, wolfram alpha: RotationTransform[angle, {1, 1, 1}][{x, y, z}]
|
|
52
|
+
float angle = hueSaturation.hue * 3.14159265;
|
|
53
|
+
float s = sin(angle), c = cos(angle);
|
|
54
|
+
vec3 weights = (vec3(2.0 * c, -sqrt(3.0) * s - c, sqrt(3.0) * s - c) + 1.0) / 3.0;
|
|
55
|
+
float len = length(color.rgb);
|
|
56
|
+
color.rgb = vec3(
|
|
57
|
+
dot(color.rgb, weights.xyz),
|
|
58
|
+
dot(color.rgb, weights.zxy),
|
|
59
|
+
dot(color.rgb, weights.yzx)
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
// saturation adjustment
|
|
63
|
+
float average = (color.r + color.g + color.b) / 3.0;
|
|
64
|
+
if (hueSaturation.saturation > 0.0) {
|
|
65
|
+
color.rgb += (average - color.rgb) * (1.0 - 1.0 / (1.001 - hueSaturation.saturation));
|
|
66
|
+
} else {
|
|
67
|
+
color.rgb += (average - color.rgb) * (-hueSaturation.saturation);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return color;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
vec4 hueSaturation_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {
|
|
74
|
+
return hueSaturation_filterColor(color);
|
|
75
|
+
}
|
|
76
|
+
`;
|
|
77
|
+
/**
|
|
78
|
+
* Hue / Saturation
|
|
79
|
+
* Provides rotational hue and multiplicative saturation control. RGB color space
|
|
80
|
+
* can be imagined as a cube where the axes are the red, green, and blue color
|
|
81
|
+
* values. Hue changing works by rotating the color vector around the grayscale
|
|
82
|
+
* line, which is the straight line from black (0, 0, 0) to white (1, 1, 1).
|
|
83
|
+
* Saturation is implemented by scaling all color channel values either toward
|
|
84
|
+
* or away from the average color channel value.
|
|
85
|
+
*/
|
|
86
|
+
export const hueSaturation = {
|
|
87
|
+
props: {},
|
|
88
|
+
name: 'hueSaturation',
|
|
89
|
+
source,
|
|
90
|
+
fs,
|
|
91
|
+
uniformTypes: {
|
|
92
|
+
hue: 'f32',
|
|
93
|
+
saturation: 'f32'
|
|
94
|
+
},
|
|
95
|
+
propTypes: {
|
|
96
|
+
hue: { value: 0, min: -1, max: 1 },
|
|
97
|
+
saturation: { value: 0, min: -1, max: 1 }
|
|
98
|
+
},
|
|
99
|
+
passes: [{ filter: true }]
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=huesaturation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"huesaturation.js","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-adjust-filters/huesaturation.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,MAAM,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCzB,CAAC;AAEF,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCrB,CAAC;AAeF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,EAAwB;IAE/B,IAAI,EAAE,eAAe;IACrB,MAAM;IACN,EAAE;IAEF,YAAY,EAAE;QACZ,GAAG,EAAE,KAAK;QACV,UAAU,EAAE,KAAK;KAClB;IACD,SAAS,EAAE;QACT,GAAG,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC;QAChC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC;KACxC;IACD,MAAM,EAAE,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC;CACyB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Noise - Adds black and white noise to the image.
|
|
3
|
+
*/
|
|
4
|
+
export type NoiseProps = {
|
|
5
|
+
/** 0 to 1 (0 for no effect, 1 for maximum noise) */
|
|
6
|
+
amount?: number;
|
|
7
|
+
};
|
|
8
|
+
export type NoiseUniforms = NoiseProps;
|
|
9
|
+
/**
|
|
10
|
+
* Noise
|
|
11
|
+
* Adds black and white noise to the image.
|
|
12
|
+
*/
|
|
13
|
+
export declare const noise: {
|
|
14
|
+
readonly props: NoiseProps;
|
|
15
|
+
readonly uniforms: NoiseUniforms;
|
|
16
|
+
readonly name: "noise";
|
|
17
|
+
readonly uniformTypes: {
|
|
18
|
+
readonly amount: "f32";
|
|
19
|
+
};
|
|
20
|
+
readonly propTypes: {
|
|
21
|
+
readonly amount: {
|
|
22
|
+
readonly value: 0.5;
|
|
23
|
+
readonly min: 0;
|
|
24
|
+
readonly max: 1;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
readonly fs: "uniform noiseUniforms {\n float amount;\n} noise;\n\nfloat rand(vec2 co) {\n return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);\n}\n\nvec4 noise_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {\n float diff = (rand(texCoord) - 0.5) * noise.amount;\n color.r += diff;\n color.g += diff;\n color.b += diff;\n return color;\n}\n";
|
|
28
|
+
readonly source: "struct noiseUniforms {\n amount: f32\n};\n\n@group(0), @binding(0) var<uniform> noise: NoiseUniforms;\n\nfn rand(co: vec2<f32>) -> f32 {\n\treturn fract(sin(dot(co.xy, vec2<f32>(12.9898, 78.233))) * 43758.547);\n} \n\nfn noise_filterColor_ext(color: vec4<f32>, texSize: vec2<f32>, texCoord: vec2<f32>) -> vec4<f32> {\n\tlet diff: f32 = (rand(texCoord) - 0.5) * noise.amount;\n\tcolor.r = color.r + (diff);\n\tcolor.g = color.g + (diff);\n\tcolor.b = color.b + (diff);\n\treturn color;\n} \n";
|
|
29
|
+
readonly passes: [{
|
|
30
|
+
readonly filter: true;
|
|
31
|
+
}];
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=noise.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noise.d.ts","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-adjust-filters/noise.ts"],"names":[],"mappings":"AA4CA;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,KAAK;oBACH,UAAU;uBACP,aAAa;;;;;;;;;;;;;;;;;CAYwB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
const source = /* wgsl */ `\
|
|
5
|
+
struct noiseUniforms {
|
|
6
|
+
amount: f32
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
@group(0), @binding(0) var<uniform> noise: NoiseUniforms;
|
|
10
|
+
|
|
11
|
+
fn rand(co: vec2<f32>) -> f32 {
|
|
12
|
+
return fract(sin(dot(co.xy, vec2<f32>(12.9898, 78.233))) * 43758.547);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
fn noise_filterColor_ext(color: vec4<f32>, texSize: vec2<f32>, texCoord: vec2<f32>) -> vec4<f32> {
|
|
16
|
+
let diff: f32 = (rand(texCoord) - 0.5) * noise.amount;
|
|
17
|
+
color.r = color.r + (diff);
|
|
18
|
+
color.g = color.g + (diff);
|
|
19
|
+
color.b = color.b + (diff);
|
|
20
|
+
return color;
|
|
21
|
+
}
|
|
22
|
+
`;
|
|
23
|
+
const fs = /* glsl */ `\
|
|
24
|
+
uniform noiseUniforms {
|
|
25
|
+
float amount;
|
|
26
|
+
} noise;
|
|
27
|
+
|
|
28
|
+
float rand(vec2 co) {
|
|
29
|
+
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
vec4 noise_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {
|
|
33
|
+
float diff = (rand(texCoord) - 0.5) * noise.amount;
|
|
34
|
+
color.r += diff;
|
|
35
|
+
color.g += diff;
|
|
36
|
+
color.b += diff;
|
|
37
|
+
return color;
|
|
38
|
+
}
|
|
39
|
+
`;
|
|
40
|
+
/**
|
|
41
|
+
* Noise
|
|
42
|
+
* Adds black and white noise to the image.
|
|
43
|
+
*/
|
|
44
|
+
export const noise = {
|
|
45
|
+
props: {},
|
|
46
|
+
uniforms: {},
|
|
47
|
+
name: 'noise',
|
|
48
|
+
uniformTypes: {
|
|
49
|
+
amount: 'f32'
|
|
50
|
+
},
|
|
51
|
+
propTypes: {
|
|
52
|
+
amount: { value: 0.5, min: 0, max: 1 }
|
|
53
|
+
},
|
|
54
|
+
fs,
|
|
55
|
+
source,
|
|
56
|
+
passes: [{ filter: true }]
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=noise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noise.js","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-adjust-filters/noise.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,MAAM,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;CAkBzB,CAAC;AAEF,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;CAgBrB,CAAC;AAYF;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,KAAK,EAAE,EAAgB;IACvB,QAAQ,EAAE,EAAmB;IAE7B,IAAI,EAAE,OAAO;IACb,YAAY,EAAE;QACZ,MAAM,EAAE,KAAK;KACd;IACD,SAAS,EAAE;QACT,MAAM,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC;KACrC;IACD,EAAE;IACF,MAAM;IACN,MAAM,EAAE,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC;CAC6B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type SepiaProps = {
|
|
2
|
+
amount?: number;
|
|
3
|
+
};
|
|
4
|
+
export type SepiaUniforms = SepiaProps;
|
|
5
|
+
/**
|
|
6
|
+
* @filter Sepia
|
|
7
|
+
* @description Gives the image a reddish-brown monochrome tint that imitates an old photograph.
|
|
8
|
+
* @param amount 0 to 1 (0 for no effect, 1 for full sepia coloring)
|
|
9
|
+
*/
|
|
10
|
+
export declare const sepia: {
|
|
11
|
+
readonly props: SepiaProps;
|
|
12
|
+
readonly uniforms: SepiaUniforms;
|
|
13
|
+
readonly name: "sepia";
|
|
14
|
+
readonly uniformTypes: {
|
|
15
|
+
readonly amount: "f32";
|
|
16
|
+
};
|
|
17
|
+
readonly propTypes: {
|
|
18
|
+
readonly amount: {
|
|
19
|
+
readonly value: 0.5;
|
|
20
|
+
readonly min: 0;
|
|
21
|
+
readonly max: 1;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
readonly fs: "uniform sepiaUniforms {\n float amount;\n} sepia;\n\nvec4 sepia_filterColor(vec4 color) {\n float r = color.r;\n float g = color.g;\n float b = color.b;\n\n color.r =\n min(1.0, (r * (1.0 - (0.607 * sepia.amount))) + (g * (0.769 * sepia.amount)) + (b * (0.189 * sepia.amount)));\n color.g = min(1.0, (r * 0.349 * sepia.amount) + (g * (1.0 - (0.314 * sepia.amount))) + (b * 0.168 * sepia.amount));\n color.b = min(1.0, (r * 0.272 * sepia.amount) + (g * 0.534 * sepia.amount) + (b * (1.0 - (0.869 * sepia.amount))));\n\n return color;\n}\n\nvec4 sepia_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {\n return sepia_filterColor(color);\n}\n";
|
|
25
|
+
readonly passes: [{
|
|
26
|
+
readonly filter: true;
|
|
27
|
+
}];
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=sepia.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sepia.d.ts","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-adjust-filters/sepia.ts"],"names":[],"mappings":"AA6BA,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,KAAK;oBACH,UAAU;uBACP,aAAa;;;;;;;;;;;;;;;;CAWwB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
const fs = /* glsl */ `\
|
|
5
|
+
uniform sepiaUniforms {
|
|
6
|
+
float amount;
|
|
7
|
+
} sepia;
|
|
8
|
+
|
|
9
|
+
vec4 sepia_filterColor(vec4 color) {
|
|
10
|
+
float r = color.r;
|
|
11
|
+
float g = color.g;
|
|
12
|
+
float b = color.b;
|
|
13
|
+
|
|
14
|
+
color.r =
|
|
15
|
+
min(1.0, (r * (1.0 - (0.607 * sepia.amount))) + (g * (0.769 * sepia.amount)) + (b * (0.189 * sepia.amount)));
|
|
16
|
+
color.g = min(1.0, (r * 0.349 * sepia.amount) + (g * (1.0 - (0.314 * sepia.amount))) + (b * 0.168 * sepia.amount));
|
|
17
|
+
color.b = min(1.0, (r * 0.272 * sepia.amount) + (g * 0.534 * sepia.amount) + (b * (1.0 - (0.869 * sepia.amount))));
|
|
18
|
+
|
|
19
|
+
return color;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
vec4 sepia_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {
|
|
23
|
+
return sepia_filterColor(color);
|
|
24
|
+
}
|
|
25
|
+
`;
|
|
26
|
+
/**
|
|
27
|
+
* @filter Sepia
|
|
28
|
+
* @description Gives the image a reddish-brown monochrome tint that imitates an old photograph.
|
|
29
|
+
* @param amount 0 to 1 (0 for no effect, 1 for full sepia coloring)
|
|
30
|
+
*/
|
|
31
|
+
export const sepia = {
|
|
32
|
+
props: {},
|
|
33
|
+
uniforms: {},
|
|
34
|
+
name: 'sepia',
|
|
35
|
+
uniformTypes: {
|
|
36
|
+
amount: 'f32'
|
|
37
|
+
},
|
|
38
|
+
propTypes: {
|
|
39
|
+
amount: { value: 0.5, min: 0, max: 1 }
|
|
40
|
+
},
|
|
41
|
+
fs,
|
|
42
|
+
passes: [{ filter: true }]
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=sepia.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sepia.js","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-adjust-filters/sepia.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;CAqBrB,CAAC;AAQF;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,KAAK,EAAE,EAAgB;IACvB,QAAQ,EAAE,EAAmB;IAE7B,IAAI,EAAE,OAAO;IACb,YAAY,EAAE;QACZ,MAAM,EAAE,KAAK;KACd;IACD,SAAS,EAAE;QACT,MAAM,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC;KACrC;IACD,EAAE;IACF,MAAM,EAAE,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC;CAC6B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vibrance - Modifies the saturation of desaturated colors, leaving saturated colors unmodified.
|
|
3
|
+
*/
|
|
4
|
+
export type VibranceProps = {
|
|
5
|
+
/** -1 to 1 (-1 is minimum vibrance, 0 is no change, and 1 is maximum vibrance) */
|
|
6
|
+
amount?: number;
|
|
7
|
+
};
|
|
8
|
+
export type VibranceUniforms = VibranceProps;
|
|
9
|
+
/** Vibrance - Modifies the saturation of desaturated colors, leaving saturated colors unmodified. */
|
|
10
|
+
export declare const vibrance: {
|
|
11
|
+
readonly props: VibranceProps;
|
|
12
|
+
readonly uniforms: VibranceUniforms;
|
|
13
|
+
readonly name: "vibrance";
|
|
14
|
+
readonly uniformTypes: {
|
|
15
|
+
readonly amount: "f32";
|
|
16
|
+
};
|
|
17
|
+
readonly propTypes: {
|
|
18
|
+
readonly amount: {
|
|
19
|
+
readonly value: 0;
|
|
20
|
+
readonly min: -1;
|
|
21
|
+
readonly max: 1;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
readonly fs: "uniform vibranceUniforms {\n float amount;\n} vibrance;\n\nvec4 vibrance_filterColor(vec4 color) {\n float average = (color.r + color.g + color.b) / 3.0;\n float mx = max(color.r, max(color.g, color.b));\n float amt = (mx - average) * (-vibrance.amount * 3.0);\n color.rgb = mix(color.rgb, vec3(mx), amt);\n return color;\n}\n\nvec4 vibrance_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {\n return vibrance_filterColor(color);\n}\n";
|
|
25
|
+
readonly passes: [{
|
|
26
|
+
readonly filter: true;
|
|
27
|
+
}];
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=vibrance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vibrance.d.ts","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-adjust-filters/vibrance.ts"],"names":[],"mappings":"AAwBA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAE7C,qGAAqG;AACrG,eAAO,MAAM,QAAQ;oBACN,aAAa;uBACV,gBAAgB;;;;;;;;;;;;;;;;CAU2B,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
const fs = /* glsl */ `\
|
|
5
|
+
uniform vibranceUniforms {
|
|
6
|
+
float amount;
|
|
7
|
+
} vibrance;
|
|
8
|
+
|
|
9
|
+
vec4 vibrance_filterColor(vec4 color) {
|
|
10
|
+
float average = (color.r + color.g + color.b) / 3.0;
|
|
11
|
+
float mx = max(color.r, max(color.g, color.b));
|
|
12
|
+
float amt = (mx - average) * (-vibrance.amount * 3.0);
|
|
13
|
+
color.rgb = mix(color.rgb, vec3(mx), amt);
|
|
14
|
+
return color;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
vec4 vibrance_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {
|
|
18
|
+
return vibrance_filterColor(color);
|
|
19
|
+
}
|
|
20
|
+
`;
|
|
21
|
+
/** Vibrance - Modifies the saturation of desaturated colors, leaving saturated colors unmodified. */
|
|
22
|
+
export const vibrance = {
|
|
23
|
+
props: {},
|
|
24
|
+
uniforms: {},
|
|
25
|
+
name: 'vibrance',
|
|
26
|
+
uniformTypes: {
|
|
27
|
+
amount: 'f32'
|
|
28
|
+
},
|
|
29
|
+
propTypes: {
|
|
30
|
+
amount: { value: 0, min: -1, max: 1 }
|
|
31
|
+
},
|
|
32
|
+
fs,
|
|
33
|
+
passes: [{ filter: true }]
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=vibrance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vibrance.js","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-adjust-filters/vibrance.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;CAgBrB,CAAC;AAYF,qGAAqG;AACrG,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,EAAmB;IAC1B,QAAQ,EAAE,EAAsB;IAChC,IAAI,EAAE,UAAU;IAChB,YAAY,EAAE;QACZ,MAAM,EAAE,KAAK;KACd;IACD,SAAS,EAAE;QACT,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC;KACpC;IACD,EAAE;IACF,MAAM,EAAE,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC;CACmC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vignette - Adds a simulated lens edge darkening effect.
|
|
3
|
+
*/
|
|
4
|
+
export type VignetteProps = {
|
|
5
|
+
/** 0 to 1 (0 for center of frame, 1 for edge of frame) */
|
|
6
|
+
radius?: number;
|
|
7
|
+
/** 0 to 1 (0 for no effect, 1 for maximum lens darkening) */
|
|
8
|
+
amount?: number;
|
|
9
|
+
};
|
|
10
|
+
export type VignetteUniforms = VignetteProps;
|
|
11
|
+
/**
|
|
12
|
+
* Vignette -
|
|
13
|
+
* Adds a simulated lens edge darkening effect.
|
|
14
|
+
*/
|
|
15
|
+
export declare const vignette: {
|
|
16
|
+
readonly props: VignetteProps;
|
|
17
|
+
readonly uniforms: VignetteUniforms;
|
|
18
|
+
readonly name: "vignette";
|
|
19
|
+
readonly uniformTypes: {
|
|
20
|
+
readonly radius: "f32";
|
|
21
|
+
readonly amount: "f32";
|
|
22
|
+
};
|
|
23
|
+
readonly defaultUniforms: {
|
|
24
|
+
readonly radius: 0.5;
|
|
25
|
+
readonly amount: 0.5;
|
|
26
|
+
};
|
|
27
|
+
readonly propTypes: {
|
|
28
|
+
readonly radius: {
|
|
29
|
+
readonly value: 0.5;
|
|
30
|
+
readonly min: 0;
|
|
31
|
+
readonly max: 1;
|
|
32
|
+
};
|
|
33
|
+
readonly amount: {
|
|
34
|
+
readonly value: 0.5;
|
|
35
|
+
readonly min: 0;
|
|
36
|
+
readonly max: 1;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
readonly passes: [{
|
|
40
|
+
readonly filter: true;
|
|
41
|
+
}];
|
|
42
|
+
readonly fs: "uniform vignetteUniforms {\n float radius;\n float amount;\n} vignette;\n\nvec4 vignette_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {\n float dist = distance(texCoord, vec2(0.5, 0.5));\n float ratio = smoothstep(0.8, vignette.radius * 0.799, dist * (vignette.amount + vignette.radius));\n return color.rgba * ratio + (1.0 - ratio)*vec4(0.0, 0.0, 0.0, 1.0);\n}\n";
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=vignette.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vignette.d.ts","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-adjust-filters/vignette.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,QAAQ;oBACN,aAAa;uBACV,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;CAoB2B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
const fs = /* glsl */ `\
|
|
5
|
+
uniform vignetteUniforms {
|
|
6
|
+
float radius;
|
|
7
|
+
float amount;
|
|
8
|
+
} vignette;
|
|
9
|
+
|
|
10
|
+
vec4 vignette_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {
|
|
11
|
+
float dist = distance(texCoord, vec2(0.5, 0.5));
|
|
12
|
+
float ratio = smoothstep(0.8, vignette.radius * 0.799, dist * (vignette.amount + vignette.radius));
|
|
13
|
+
return color.rgba * ratio + (1.0 - ratio)*vec4(0.0, 0.0, 0.0, 1.0);
|
|
14
|
+
}
|
|
15
|
+
`;
|
|
16
|
+
/**
|
|
17
|
+
* Vignette -
|
|
18
|
+
* Adds a simulated lens edge darkening effect.
|
|
19
|
+
*/
|
|
20
|
+
export const vignette = {
|
|
21
|
+
props: {},
|
|
22
|
+
uniforms: {},
|
|
23
|
+
name: 'vignette',
|
|
24
|
+
uniformTypes: {
|
|
25
|
+
radius: 'f32',
|
|
26
|
+
amount: 'f32'
|
|
27
|
+
},
|
|
28
|
+
defaultUniforms: {
|
|
29
|
+
radius: 0.5,
|
|
30
|
+
amount: 0.5
|
|
31
|
+
},
|
|
32
|
+
propTypes: {
|
|
33
|
+
radius: { value: 0.5, min: 0, max: 1 },
|
|
34
|
+
amount: { value: 0.5, min: 0, max: 1 }
|
|
35
|
+
},
|
|
36
|
+
passes: [{ filter: true }],
|
|
37
|
+
fs
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=vignette.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vignette.js","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-adjust-filters/vignette.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;;;;CAWrB,CAAC;AAcF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,EAAmB;IAC1B,QAAQ,EAAE,EAAsB;IAEhC,IAAI,EAAE,UAAU;IAEhB,YAAY,EAAE;QACZ,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,KAAK;KACd;IACD,eAAe,EAAE;QACf,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,GAAG;KACZ;IACD,SAAS,EAAE;QACT,MAAM,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC;QACpC,MAAM,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC;KACrC;IAED,MAAM,EAAE,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC;IAExB,EAAE;CACyD,CAAC"}
|