@luma.gl/effects 7.4.0-alpha.2 → 9.1.0-beta.1

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.
Files changed (306) hide show
  1. package/LICENSE +10 -1
  2. package/README.md +2 -2
  3. package/dist/dist.dev.js +3458 -0
  4. package/dist/dist.min.js +18 -30
  5. package/dist/index.cjs +1724 -0
  6. package/dist/index.cjs.map +7 -0
  7. package/dist/index.d.ts +40 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +26 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/passes/postprocessing/fxaa/fxaa.d.ts +15 -0
  12. package/dist/passes/postprocessing/fxaa/fxaa.d.ts.map +1 -0
  13. package/{src/shader-modules → dist/passes/postprocessing}/fxaa/fxaa.js +18 -14
  14. package/dist/passes/postprocessing/fxaa/fxaa.js.map +1 -0
  15. package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.d.ts +43 -0
  16. package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.d.ts.map +1 -0
  17. package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.js +68 -0
  18. package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.js.map +1 -0
  19. package/dist/passes/postprocessing/image-adjust-filters/denoise.d.ts +43 -0
  20. package/dist/passes/postprocessing/image-adjust-filters/denoise.d.ts.map +1 -0
  21. package/dist/passes/postprocessing/image-adjust-filters/denoise.js +74 -0
  22. package/dist/passes/postprocessing/image-adjust-filters/denoise.js.map +1 -0
  23. package/dist/passes/postprocessing/image-adjust-filters/huesaturation.d.ts +46 -0
  24. package/dist/passes/postprocessing/image-adjust-filters/huesaturation.d.ts.map +1 -0
  25. package/dist/passes/postprocessing/image-adjust-filters/huesaturation.js +101 -0
  26. package/dist/passes/postprocessing/image-adjust-filters/huesaturation.js.map +1 -0
  27. package/dist/passes/postprocessing/image-adjust-filters/noise.d.ts +33 -0
  28. package/dist/passes/postprocessing/image-adjust-filters/noise.d.ts.map +1 -0
  29. package/dist/passes/postprocessing/image-adjust-filters/noise.js +58 -0
  30. package/dist/passes/postprocessing/image-adjust-filters/noise.js.map +1 -0
  31. package/dist/passes/postprocessing/image-adjust-filters/sepia.d.ts +29 -0
  32. package/dist/passes/postprocessing/image-adjust-filters/sepia.d.ts.map +1 -0
  33. package/dist/passes/postprocessing/image-adjust-filters/sepia.js +44 -0
  34. package/dist/passes/postprocessing/image-adjust-filters/sepia.js.map +1 -0
  35. package/dist/passes/postprocessing/image-adjust-filters/vibrance.d.ts +29 -0
  36. package/dist/passes/postprocessing/image-adjust-filters/vibrance.d.ts.map +1 -0
  37. package/dist/passes/postprocessing/image-adjust-filters/vibrance.js +35 -0
  38. package/dist/passes/postprocessing/image-adjust-filters/vibrance.js.map +1 -0
  39. package/dist/passes/postprocessing/image-adjust-filters/vignette.d.ts +44 -0
  40. package/dist/passes/postprocessing/image-adjust-filters/vignette.d.ts.map +1 -0
  41. package/dist/passes/postprocessing/image-adjust-filters/vignette.js +39 -0
  42. package/dist/passes/postprocessing/image-adjust-filters/vignette.js.map +1 -0
  43. package/dist/passes/postprocessing/image-blur-filters/tiltshift.d.ts +79 -0
  44. package/dist/passes/postprocessing/image-blur-filters/tiltshift.d.ts.map +1 -0
  45. package/dist/passes/postprocessing/image-blur-filters/tiltshift.js +111 -0
  46. package/dist/passes/postprocessing/image-blur-filters/tiltshift.js.map +1 -0
  47. package/dist/passes/postprocessing/image-blur-filters/triangleblur.d.ts +56 -0
  48. package/dist/passes/postprocessing/image-blur-filters/triangleblur.d.ts.map +1 -0
  49. package/dist/passes/postprocessing/image-blur-filters/triangleblur.js +65 -0
  50. package/dist/passes/postprocessing/image-blur-filters/triangleblur.js.map +1 -0
  51. package/dist/passes/postprocessing/image-blur-filters/zoomblur.d.ts +42 -0
  52. package/dist/passes/postprocessing/image-blur-filters/zoomblur.d.ts.map +1 -0
  53. package/dist/passes/postprocessing/image-blur-filters/zoomblur.js +59 -0
  54. package/dist/passes/postprocessing/image-blur-filters/zoomblur.js.map +1 -0
  55. package/dist/passes/postprocessing/image-fun-filters/colorhalftone.d.ts +52 -0
  56. package/dist/passes/postprocessing/image-fun-filters/colorhalftone.d.ts.map +1 -0
  57. package/dist/passes/postprocessing/image-fun-filters/colorhalftone.js +64 -0
  58. package/dist/passes/postprocessing/image-fun-filters/colorhalftone.js.map +1 -0
  59. package/dist/passes/postprocessing/image-fun-filters/dotscreen.d.ts +50 -0
  60. package/dist/passes/postprocessing/image-fun-filters/dotscreen.d.ts.map +1 -0
  61. package/dist/passes/postprocessing/image-fun-filters/dotscreen.js +50 -0
  62. package/dist/passes/postprocessing/image-fun-filters/dotscreen.js.map +1 -0
  63. package/dist/passes/postprocessing/image-fun-filters/edgework.d.ts +54 -0
  64. package/dist/passes/postprocessing/image-fun-filters/edgework.d.ts.map +1 -0
  65. package/dist/passes/postprocessing/image-fun-filters/edgework.js +101 -0
  66. package/dist/passes/postprocessing/image-fun-filters/edgework.js.map +1 -0
  67. package/dist/passes/postprocessing/image-fun-filters/hexagonalpixelate.d.ts +43 -0
  68. package/dist/passes/postprocessing/image-fun-filters/hexagonalpixelate.d.ts.map +1 -0
  69. package/dist/passes/postprocessing/image-fun-filters/hexagonalpixelate.js +68 -0
  70. package/dist/passes/postprocessing/image-fun-filters/hexagonalpixelate.js.map +1 -0
  71. package/dist/passes/postprocessing/image-fun-filters/ink.d.ts +40 -0
  72. package/dist/passes/postprocessing/image-fun-filters/ink.d.ts.map +1 -0
  73. package/dist/passes/postprocessing/image-fun-filters/ink.js +52 -0
  74. package/dist/passes/postprocessing/image-fun-filters/ink.js.map +1 -0
  75. package/dist/passes/postprocessing/image-fun-filters/magnify.d.ts +45 -0
  76. package/dist/passes/postprocessing/image-fun-filters/magnify.d.ts.map +1 -0
  77. package/dist/passes/postprocessing/image-fun-filters/magnify.js +49 -0
  78. package/dist/passes/postprocessing/image-fun-filters/magnify.js.map +1 -0
  79. package/dist/passes/postprocessing/image-warp-filters/bulgepinch.d.ts +49 -0
  80. package/dist/passes/postprocessing/image-warp-filters/bulgepinch.d.ts.map +1 -0
  81. package/dist/passes/postprocessing/image-warp-filters/bulgepinch.js +56 -0
  82. package/dist/passes/postprocessing/image-warp-filters/bulgepinch.js.map +1 -0
  83. package/dist/passes/postprocessing/image-warp-filters/swirl.d.ts +50 -0
  84. package/dist/passes/postprocessing/image-warp-filters/swirl.d.ts.map +1 -0
  85. package/dist/passes/postprocessing/image-warp-filters/swirl.js +57 -0
  86. package/dist/passes/postprocessing/image-warp-filters/swirl.js.map +1 -0
  87. package/dist/passes/postprocessing/image-warp-filters/warp.d.ts +8 -0
  88. package/dist/passes/postprocessing/image-warp-filters/warp.d.ts.map +1 -0
  89. package/dist/passes/postprocessing/image-warp-filters/warp.js +21 -0
  90. package/dist/passes/postprocessing/image-warp-filters/warp.js.map +1 -0
  91. package/package.json +37 -13
  92. package/src/index.ts +99 -0
  93. package/src/passes/postprocessing/fxaa/fxaa.ts +694 -0
  94. package/src/passes/postprocessing/image-adjust-filters/brightnesscontrast.ts +81 -0
  95. package/src/passes/postprocessing/image-adjust-filters/denoise.ts +97 -0
  96. package/src/passes/postprocessing/image-adjust-filters/huesaturation.ts +120 -0
  97. package/src/passes/postprocessing/image-adjust-filters/noise.ts +73 -0
  98. package/src/passes/postprocessing/image-adjust-filters/sepia.ts +54 -0
  99. package/src/passes/postprocessing/image-adjust-filters/vibrance.ts +48 -0
  100. package/src/passes/postprocessing/image-adjust-filters/vignette.ts +58 -0
  101. package/src/passes/postprocessing/image-blur-filters/tiltshift.ts +135 -0
  102. package/src/passes/postprocessing/image-blur-filters/triangleblur.ts +84 -0
  103. package/src/passes/postprocessing/image-blur-filters/zoomblur.ts +75 -0
  104. package/src/passes/postprocessing/image-fun-filters/colorhalftone.ts +85 -0
  105. package/src/passes/postprocessing/image-fun-filters/dotscreen.ts +70 -0
  106. package/src/passes/postprocessing/image-fun-filters/edgework.ts +120 -0
  107. package/src/passes/postprocessing/image-fun-filters/hexagonalpixelate.ts +86 -0
  108. package/src/passes/postprocessing/image-fun-filters/ink.ts +73 -0
  109. package/src/passes/postprocessing/image-fun-filters/magnify.ts +70 -0
  110. package/src/passes/postprocessing/image-warp-filters/bulgepinch.ts +72 -0
  111. package/src/passes/postprocessing/image-warp-filters/swirl.ts +77 -0
  112. package/src/passes/postprocessing/image-warp-filters/warp.ts +28 -0
  113. package/dist/dist.js +0 -3621
  114. package/dist/es5/experimental/passes/outline-pass.js +0 -125
  115. package/dist/es5/experimental/passes/outline-pass.js.map +0 -1
  116. package/dist/es5/experimental/passes/ssao-pass.js +0 -133
  117. package/dist/es5/experimental/passes/ssao-pass.js.map +0 -1
  118. package/dist/es5/experimental/shader-modules/convolution.js +0 -46
  119. package/dist/es5/experimental/shader-modules/convolution.js.map +0 -1
  120. package/dist/es5/experimental/shader-modules/depth.js +0 -27
  121. package/dist/es5/experimental/shader-modules/depth.js.map +0 -1
  122. package/dist/es5/experimental/shader-modules/pack.js +0 -19
  123. package/dist/es5/experimental/shader-modules/pack.js.map +0 -1
  124. package/dist/es5/experimental/shader-modules/ssao.js +0 -32
  125. package/dist/es5/experimental/shader-modules/ssao.js.map +0 -1
  126. package/dist/es5/index.js +0 -184
  127. package/dist/es5/index.js.map +0 -1
  128. package/dist/es5/shader-modules/adjust-filters/brightnesscontrast.js +0 -29
  129. package/dist/es5/shader-modules/adjust-filters/brightnesscontrast.js.map +0 -1
  130. package/dist/es5/shader-modules/adjust-filters/denoise.js +0 -29
  131. package/dist/es5/shader-modules/adjust-filters/denoise.js.map +0 -1
  132. package/dist/es5/shader-modules/adjust-filters/huesaturation.js +0 -29
  133. package/dist/es5/shader-modules/adjust-filters/huesaturation.js.map +0 -1
  134. package/dist/es5/shader-modules/adjust-filters/noise.js +0 -24
  135. package/dist/es5/shader-modules/adjust-filters/noise.js.map +0 -1
  136. package/dist/es5/shader-modules/adjust-filters/sepia.js +0 -24
  137. package/dist/es5/shader-modules/adjust-filters/sepia.js.map +0 -1
  138. package/dist/es5/shader-modules/adjust-filters/vibrance.js +0 -24
  139. package/dist/es5/shader-modules/adjust-filters/vibrance.js.map +0 -1
  140. package/dist/es5/shader-modules/adjust-filters/vignette.js +0 -29
  141. package/dist/es5/shader-modules/adjust-filters/vignette.js.map +0 -1
  142. package/dist/es5/shader-modules/blur-filters/tiltshift.js +0 -49
  143. package/dist/es5/shader-modules/blur-filters/tiltshift.js.map +0 -1
  144. package/dist/es5/shader-modules/blur-filters/triangleblur.js +0 -42
  145. package/dist/es5/shader-modules/blur-filters/triangleblur.js.map +0 -1
  146. package/dist/es5/shader-modules/blur-filters/zoomblur.js +0 -31
  147. package/dist/es5/shader-modules/blur-filters/zoomblur.js.map +0 -1
  148. package/dist/es5/shader-modules/fun-filters/colorhalftone.js +0 -31
  149. package/dist/es5/shader-modules/fun-filters/colorhalftone.js.map +0 -1
  150. package/dist/es5/shader-modules/fun-filters/dotscreen.js +0 -31
  151. package/dist/es5/shader-modules/fun-filters/dotscreen.js.map +0 -1
  152. package/dist/es5/shader-modules/fun-filters/edgework.js +0 -42
  153. package/dist/es5/shader-modules/fun-filters/edgework.js.map +0 -1
  154. package/dist/es5/shader-modules/fun-filters/hexagonalpixelate.js +0 -29
  155. package/dist/es5/shader-modules/fun-filters/hexagonalpixelate.js.map +0 -1
  156. package/dist/es5/shader-modules/fun-filters/ink.js +0 -24
  157. package/dist/es5/shader-modules/fun-filters/ink.js.map +0 -1
  158. package/dist/es5/shader-modules/fxaa/fxaa.js +0 -47
  159. package/dist/es5/shader-modules/fxaa/fxaa.js.map +0 -1
  160. package/dist/es5/shader-modules/utils/random.js +0 -13
  161. package/dist/es5/shader-modules/utils/random.js.map +0 -1
  162. package/dist/es5/shader-modules/warp-filters/bulgepinch.js +0 -36
  163. package/dist/es5/shader-modules/warp-filters/bulgepinch.js.map +0 -1
  164. package/dist/es5/shader-modules/warp-filters/swirl.js +0 -36
  165. package/dist/es5/shader-modules/warp-filters/swirl.js.map +0 -1
  166. package/dist/es5/shader-modules/warp-filters/warp.js +0 -13
  167. package/dist/es5/shader-modules/warp-filters/warp.js.map +0 -1
  168. package/dist/es6/experimental/passes/outline-pass.js +0 -48
  169. package/dist/es6/experimental/passes/outline-pass.js.map +0 -1
  170. package/dist/es6/experimental/passes/ssao-pass.js +0 -76
  171. package/dist/es6/experimental/passes/ssao-pass.js.map +0 -1
  172. package/dist/es6/experimental/shader-modules/convolution.js +0 -37
  173. package/dist/es6/experimental/shader-modules/convolution.js.map +0 -1
  174. package/dist/es6/experimental/shader-modules/depth.js +0 -13
  175. package/dist/es6/experimental/shader-modules/depth.js.map +0 -1
  176. package/dist/es6/experimental/shader-modules/pack.js +0 -10
  177. package/dist/es6/experimental/shader-modules/pack.js.map +0 -1
  178. package/dist/es6/experimental/shader-modules/ssao.js +0 -21
  179. package/dist/es6/experimental/shader-modules/ssao.js.map +0 -1
  180. package/dist/es6/index.js +0 -23
  181. package/dist/es6/index.js.map +0 -1
  182. package/dist/es6/shader-modules/adjust-filters/brightnesscontrast.js +0 -22
  183. package/dist/es6/shader-modules/adjust-filters/brightnesscontrast.js.map +0 -1
  184. package/dist/es6/shader-modules/adjust-filters/denoise.js +0 -20
  185. package/dist/es6/shader-modules/adjust-filters/denoise.js.map +0 -1
  186. package/dist/es6/shader-modules/adjust-filters/huesaturation.js +0 -22
  187. package/dist/es6/shader-modules/adjust-filters/huesaturation.js.map +0 -1
  188. package/dist/es6/shader-modules/adjust-filters/noise.js +0 -17
  189. package/dist/es6/shader-modules/adjust-filters/noise.js.map +0 -1
  190. package/dist/es6/shader-modules/adjust-filters/sepia.js +0 -17
  191. package/dist/es6/shader-modules/adjust-filters/sepia.js.map +0 -1
  192. package/dist/es6/shader-modules/adjust-filters/vibrance.js +0 -17
  193. package/dist/es6/shader-modules/adjust-filters/vibrance.js.map +0 -1
  194. package/dist/es6/shader-modules/adjust-filters/vignette.js +0 -22
  195. package/dist/es6/shader-modules/adjust-filters/vignette.js.map +0 -1
  196. package/dist/es6/shader-modules/blur-filters/tiltshift.js +0 -38
  197. package/dist/es6/shader-modules/blur-filters/tiltshift.js.map +0 -1
  198. package/dist/es6/shader-modules/blur-filters/triangleblur.js +0 -31
  199. package/dist/es6/shader-modules/blur-filters/triangleblur.js.map +0 -1
  200. package/dist/es6/shader-modules/blur-filters/zoomblur.js +0 -20
  201. package/dist/es6/shader-modules/blur-filters/zoomblur.js.map +0 -1
  202. package/dist/es6/shader-modules/fun-filters/colorhalftone.js +0 -24
  203. package/dist/es6/shader-modules/fun-filters/colorhalftone.js.map +0 -1
  204. package/dist/es6/shader-modules/fun-filters/dotscreen.js +0 -24
  205. package/dist/es6/shader-modules/fun-filters/dotscreen.js.map +0 -1
  206. package/dist/es6/shader-modules/fun-filters/edgework.js +0 -31
  207. package/dist/es6/shader-modules/fun-filters/edgework.js.map +0 -1
  208. package/dist/es6/shader-modules/fun-filters/hexagonalpixelate.js +0 -22
  209. package/dist/es6/shader-modules/fun-filters/hexagonalpixelate.js.map +0 -1
  210. package/dist/es6/shader-modules/fun-filters/ink.js +0 -17
  211. package/dist/es6/shader-modules/fun-filters/ink.js.map +0 -1
  212. package/dist/es6/shader-modules/fxaa/fxaa.js +0 -39
  213. package/dist/es6/shader-modules/fxaa/fxaa.js.map +0 -1
  214. package/dist/es6/shader-modules/utils/random.js +0 -6
  215. package/dist/es6/shader-modules/utils/random.js.map +0 -1
  216. package/dist/es6/shader-modules/warp-filters/bulgepinch.js +0 -25
  217. package/dist/es6/shader-modules/warp-filters/bulgepinch.js.map +0 -1
  218. package/dist/es6/shader-modules/warp-filters/swirl.js +0 -25
  219. package/dist/es6/shader-modules/warp-filters/swirl.js.map +0 -1
  220. package/dist/es6/shader-modules/warp-filters/warp.js +0 -6
  221. package/dist/es6/shader-modules/warp-filters/warp.js.map +0 -1
  222. package/dist/esm/experimental/passes/outline-pass.js +0 -114
  223. package/dist/esm/experimental/passes/outline-pass.js.map +0 -1
  224. package/dist/esm/experimental/passes/ssao-pass.js +0 -120
  225. package/dist/esm/experimental/passes/ssao-pass.js.map +0 -1
  226. package/dist/esm/experimental/shader-modules/convolution.js +0 -39
  227. package/dist/esm/experimental/shader-modules/convolution.js.map +0 -1
  228. package/dist/esm/experimental/shader-modules/depth.js +0 -16
  229. package/dist/esm/experimental/shader-modules/depth.js.map +0 -1
  230. package/dist/esm/experimental/shader-modules/pack.js +0 -12
  231. package/dist/esm/experimental/shader-modules/pack.js.map +0 -1
  232. package/dist/esm/experimental/shader-modules/ssao.js +0 -21
  233. package/dist/esm/experimental/shader-modules/ssao.js.map +0 -1
  234. package/dist/esm/index.js +0 -23
  235. package/dist/esm/index.js.map +0 -1
  236. package/dist/esm/shader-modules/adjust-filters/brightnesscontrast.js +0 -22
  237. package/dist/esm/shader-modules/adjust-filters/brightnesscontrast.js.map +0 -1
  238. package/dist/esm/shader-modules/adjust-filters/denoise.js +0 -22
  239. package/dist/esm/shader-modules/adjust-filters/denoise.js.map +0 -1
  240. package/dist/esm/shader-modules/adjust-filters/huesaturation.js +0 -22
  241. package/dist/esm/shader-modules/adjust-filters/huesaturation.js.map +0 -1
  242. package/dist/esm/shader-modules/adjust-filters/noise.js +0 -17
  243. package/dist/esm/shader-modules/adjust-filters/noise.js.map +0 -1
  244. package/dist/esm/shader-modules/adjust-filters/sepia.js +0 -17
  245. package/dist/esm/shader-modules/adjust-filters/sepia.js.map +0 -1
  246. package/dist/esm/shader-modules/adjust-filters/vibrance.js +0 -17
  247. package/dist/esm/shader-modules/adjust-filters/vibrance.js.map +0 -1
  248. package/dist/esm/shader-modules/adjust-filters/vignette.js +0 -22
  249. package/dist/esm/shader-modules/adjust-filters/vignette.js.map +0 -1
  250. package/dist/esm/shader-modules/blur-filters/tiltshift.js +0 -38
  251. package/dist/esm/shader-modules/blur-filters/tiltshift.js.map +0 -1
  252. package/dist/esm/shader-modules/blur-filters/triangleblur.js +0 -31
  253. package/dist/esm/shader-modules/blur-filters/triangleblur.js.map +0 -1
  254. package/dist/esm/shader-modules/blur-filters/zoomblur.js +0 -20
  255. package/dist/esm/shader-modules/blur-filters/zoomblur.js.map +0 -1
  256. package/dist/esm/shader-modules/fun-filters/colorhalftone.js +0 -24
  257. package/dist/esm/shader-modules/fun-filters/colorhalftone.js.map +0 -1
  258. package/dist/esm/shader-modules/fun-filters/dotscreen.js +0 -24
  259. package/dist/esm/shader-modules/fun-filters/dotscreen.js.map +0 -1
  260. package/dist/esm/shader-modules/fun-filters/edgework.js +0 -31
  261. package/dist/esm/shader-modules/fun-filters/edgework.js.map +0 -1
  262. package/dist/esm/shader-modules/fun-filters/hexagonalpixelate.js +0 -22
  263. package/dist/esm/shader-modules/fun-filters/hexagonalpixelate.js.map +0 -1
  264. package/dist/esm/shader-modules/fun-filters/ink.js +0 -17
  265. package/dist/esm/shader-modules/fun-filters/ink.js.map +0 -1
  266. package/dist/esm/shader-modules/fxaa/fxaa.js +0 -39
  267. package/dist/esm/shader-modules/fxaa/fxaa.js.map +0 -1
  268. package/dist/esm/shader-modules/utils/random.js +0 -6
  269. package/dist/esm/shader-modules/utils/random.js.map +0 -1
  270. package/dist/esm/shader-modules/warp-filters/bulgepinch.js +0 -25
  271. package/dist/esm/shader-modules/warp-filters/bulgepinch.js.map +0 -1
  272. package/dist/esm/shader-modules/warp-filters/swirl.js +0 -25
  273. package/dist/esm/shader-modules/warp-filters/swirl.js.map +0 -1
  274. package/dist/esm/shader-modules/warp-filters/warp.js +0 -6
  275. package/dist/esm/shader-modules/warp-filters/warp.js.map +0 -1
  276. package/src/experimental/passes/outline-pass.js +0 -58
  277. package/src/experimental/passes/ssao-pass.js +0 -73
  278. package/src/experimental/passes/ssao-pass.md +0 -15
  279. package/src/experimental/shader-modules/convolution.js +0 -96
  280. package/src/experimental/shader-modules/convolution.md +0 -15
  281. package/src/experimental/shader-modules/depth.js +0 -84
  282. package/src/experimental/shader-modules/depth.md +0 -76
  283. package/src/experimental/shader-modules/pack.js +0 -32
  284. package/src/experimental/shader-modules/pack.md +0 -15
  285. package/src/experimental/shader-modules/ssao.js +0 -183
  286. package/src/experimental/shader-modules/ssao.md +0 -4
  287. package/src/index.js +0 -35
  288. package/src/shader-modules/adjust-filters/brightnesscontrast.js +0 -38
  289. package/src/shader-modules/adjust-filters/denoise.js +0 -49
  290. package/src/shader-modules/adjust-filters/huesaturation.js +0 -57
  291. package/src/shader-modules/adjust-filters/noise.js +0 -36
  292. package/src/shader-modules/adjust-filters/sepia.js +0 -37
  293. package/src/shader-modules/adjust-filters/vibrance.js +0 -32
  294. package/src/shader-modules/adjust-filters/vignette.js +0 -33
  295. package/src/shader-modules/blur-filters/tiltshift.js +0 -105
  296. package/src/shader-modules/blur-filters/triangleblur.js +0 -55
  297. package/src/shader-modules/blur-filters/zoomblur.js +0 -56
  298. package/src/shader-modules/fun-filters/colorhalftone.js +0 -60
  299. package/src/shader-modules/fun-filters/dotscreen.js +0 -45
  300. package/src/shader-modules/fun-filters/edgework.js +0 -84
  301. package/src/shader-modules/fun-filters/hexagonalpixelate.js +0 -63
  302. package/src/shader-modules/fun-filters/ink.js +0 -49
  303. package/src/shader-modules/utils/random.js +0 -12
  304. package/src/shader-modules/warp-filters/bulgepinch.js +0 -52
  305. package/src/shader-modules/warp-filters/swirl.js +0 -55
  306. package/src/shader-modules/warp-filters/warp.js +0 -19
@@ -0,0 +1,50 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ const fs = /* glsl */ `\
5
+ uniform dotScreenUniforms {
6
+ vec2 center;
7
+ float angle;
8
+ float size;
9
+ } dotScreen;
10
+
11
+ float pattern(vec2 texSize, vec2 texCoord) {
12
+ float scale = 3.1415 / dotScreen.size;
13
+
14
+ float s = sin(dotScreen.angle), c = cos(dotScreen.angle);
15
+ vec2 tex = texCoord * texSize - dotScreen.center * texSize;
16
+ vec2 point = vec2(
17
+ c * tex.x - s * tex.y,
18
+ s * tex.x + c * tex.y
19
+ ) * scale;
20
+ return (sin(point.x) * sin(point.y)) * 4.0;
21
+ }
22
+
23
+ vec4 dotScreen_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {
24
+ float average = (color.r + color.g + color.b) / 3.0;
25
+ return vec4(vec3(average * 10.0 - 5.0 + pattern(texSize, texCoord)), color.a);
26
+ }
27
+ `;
28
+ /**
29
+ * Dot Screen -
30
+ * Simulates a black and white halftone rendering of the image by multiplying
31
+ * pixel values with a rotated 2D sine wave pattern.
32
+ */
33
+ export const dotScreen = {
34
+ props: {},
35
+ uniforms: {},
36
+ name: 'dotScreen',
37
+ uniformTypes: {
38
+ center: 'vec2<f32>',
39
+ angle: 'f32',
40
+ size: 'f32'
41
+ },
42
+ propTypes: {
43
+ center: { value: [0.5, 0.5] },
44
+ angle: { value: 1.1, softMin: 0, softMax: Math.PI / 2 },
45
+ size: { value: 3, min: 1, softMin: 3, softMax: 20 }
46
+ },
47
+ fs,
48
+ passes: [{ filter: true }]
49
+ };
50
+ //# sourceMappingURL=dotscreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotscreen.js","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-fun-filters/dotscreen.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAuBrB,CAAC;AAkBF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,KAAK,EAAE,EAAoB;IAC3B,QAAQ,EAAE,EAAuB;IAEjC,IAAI,EAAE,WAAW;IACjB,YAAY,EAAE;QACZ,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,KAAK;KACZ;IACD,SAAS,EAAE;QACT,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAC;QAC3B,KAAK,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAC;QACrD,IAAI,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAC;KAClD;IACD,EAAE;IACF,MAAM,EAAE,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC;CACqC,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Edge Work -
3
+ * Picks out different frequencies in the image by subtracting two
4
+ * copies of the image blurred with different radii.
5
+ */
6
+ export type EdgeWorkProps = {
7
+ /** radius The radius of the effect in pixels. */
8
+ radius?: number;
9
+ /** @deprecated xy or RGB */
10
+ mode?: 0 | 1;
11
+ };
12
+ export type EdgeWorkUniforms = EdgeWorkProps;
13
+ /**
14
+ * Edge Work -
15
+ * Picks out different frequencies in the image by subtracting two
16
+ * copies of the image blurred with different radii.
17
+ */
18
+ export declare const edgeWork: {
19
+ readonly props: EdgeWorkProps;
20
+ readonly uniforms: EdgeWorkProps;
21
+ readonly name: "edgeWork";
22
+ readonly dependencies: [{
23
+ readonly name: "random";
24
+ readonly fs: "float random(vec3 scale, float seed) {\n /* use the fragment position for a different seed per-pixel */\n return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);\n}\n";
25
+ }];
26
+ readonly fs: "uniform edgeWorkUniforms {\n float radius;\n int mode;\n} edgeWork;\n\nvec4 edgeWork_sampleColorRGB(sampler2D source, vec2 texSize, vec2 texCoord, vec2 delta) {\n vec2 relativeDelta = edgeWork.radius * delta / texSize;\n\n vec2 color = vec2(0.0);\n vec2 total = vec2(0.0);\n\n /* randomize the lookup values to hide the fixed number of samples */\n float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\n\n for (float t = -30.0; t <= 30.0; t++) {\n float percent = (t + offset - 0.5) / 30.0;\n float weight = 1.0 - abs(percent);\n vec3 sampleColor = texture(source, texCoord + relativeDelta * percent).rgb;\n float average = (sampleColor.r + sampleColor.g + sampleColor.b) / 3.0;\n color.x += average * weight;\n total.x += weight;\n if (abs(t) < 15.0) {\n weight = weight * 2.0 - 1.0;\n color.y += average * weight;\n total.y += weight;\n }\n }\n return vec4(color / total, 0.0, 1.0);\n}\n\nvec4 edgeWork_sampleColorXY(sampler2D source, vec2 texSize, vec2 texCoord, vec2 delta) {\n vec2 relativeDelta = edgeWork.radius * delta / texSize;\n\n vec2 color = vec2(0.0);\n vec2 total = vec2(0.0);\n\n /* randomize the lookup values to hide the fixed number of samples */\n float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\n\n for (float t = -30.0; t <= 30.0; t++) {\n float percent = (t + offset - 0.5) / 30.0;\n float weight = 1.0 - abs(percent);\n vec2 sampleColor = texture(source, texCoord + relativeDelta * percent).xy;\n color.x += sampleColor.x * weight;\n total.x += weight;\n if (abs(t) < 15.0) {\n weight = weight * 2.0 - 1.0;\n color.y += sampleColor.y * weight;\n total.y += weight;\n }\n }\n float c = clamp(10000.0 * (color.y / total.y - color.x / total.x) + 0.5, 0.0, 1.0);\n return vec4(c, c, c, 1.0);\n}\n\nvec4 edgeWork_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {\n switch (edgeWork.mode) {\n case 0: \n return edgeWork_sampleColorRGB(source, texSize, texCoord, vec2(1., 0.));\n case 1: \n default:\n return edgeWork_sampleColorXY(source, texSize, texCoord, vec2(0., 1.));\n }\n}\n";
27
+ readonly uniformTypes: {
28
+ readonly radius: "f32";
29
+ readonly mode: "i32";
30
+ };
31
+ readonly propTypes: {
32
+ readonly radius: {
33
+ readonly value: 2;
34
+ readonly min: 1;
35
+ readonly softMax: 50;
36
+ };
37
+ readonly mode: {
38
+ readonly value: 0;
39
+ readonly private: true;
40
+ };
41
+ };
42
+ readonly passes: [{
43
+ readonly sampler: true;
44
+ readonly uniforms: {
45
+ readonly mode: 0;
46
+ };
47
+ }, {
48
+ readonly sampler: true;
49
+ readonly uniforms: {
50
+ readonly mode: 1;
51
+ };
52
+ }];
53
+ };
54
+ //# sourceMappingURL=edgework.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edgework.d.ts","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-fun-filters/edgework.ts"],"names":[],"mappings":"AA0EA;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,QAAQ;oBACN,aAAa;uBACV,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwB8B,CAAC"}
@@ -0,0 +1,101 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { random } from '@luma.gl/shadertools';
5
+ const fs = /* glsl */ `\
6
+ uniform edgeWorkUniforms {
7
+ float radius;
8
+ int mode;
9
+ } edgeWork;
10
+
11
+ vec4 edgeWork_sampleColorRGB(sampler2D source, vec2 texSize, vec2 texCoord, vec2 delta) {
12
+ vec2 relativeDelta = edgeWork.radius * delta / texSize;
13
+
14
+ vec2 color = vec2(0.0);
15
+ vec2 total = vec2(0.0);
16
+
17
+ /* randomize the lookup values to hide the fixed number of samples */
18
+ float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);
19
+
20
+ for (float t = -30.0; t <= 30.0; t++) {
21
+ float percent = (t + offset - 0.5) / 30.0;
22
+ float weight = 1.0 - abs(percent);
23
+ vec3 sampleColor = texture(source, texCoord + relativeDelta * percent).rgb;
24
+ float average = (sampleColor.r + sampleColor.g + sampleColor.b) / 3.0;
25
+ color.x += average * weight;
26
+ total.x += weight;
27
+ if (abs(t) < 15.0) {
28
+ weight = weight * 2.0 - 1.0;
29
+ color.y += average * weight;
30
+ total.y += weight;
31
+ }
32
+ }
33
+ return vec4(color / total, 0.0, 1.0);
34
+ }
35
+
36
+ vec4 edgeWork_sampleColorXY(sampler2D source, vec2 texSize, vec2 texCoord, vec2 delta) {
37
+ vec2 relativeDelta = edgeWork.radius * delta / texSize;
38
+
39
+ vec2 color = vec2(0.0);
40
+ vec2 total = vec2(0.0);
41
+
42
+ /* randomize the lookup values to hide the fixed number of samples */
43
+ float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);
44
+
45
+ for (float t = -30.0; t <= 30.0; t++) {
46
+ float percent = (t + offset - 0.5) / 30.0;
47
+ float weight = 1.0 - abs(percent);
48
+ vec2 sampleColor = texture(source, texCoord + relativeDelta * percent).xy;
49
+ color.x += sampleColor.x * weight;
50
+ total.x += weight;
51
+ if (abs(t) < 15.0) {
52
+ weight = weight * 2.0 - 1.0;
53
+ color.y += sampleColor.y * weight;
54
+ total.y += weight;
55
+ }
56
+ }
57
+ float c = clamp(10000.0 * (color.y / total.y - color.x / total.x) + 0.5, 0.0, 1.0);
58
+ return vec4(c, c, c, 1.0);
59
+ }
60
+
61
+ vec4 edgeWork_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
62
+ switch (edgeWork.mode) {
63
+ case 0:
64
+ return edgeWork_sampleColorRGB(source, texSize, texCoord, vec2(1., 0.));
65
+ case 1:
66
+ default:
67
+ return edgeWork_sampleColorXY(source, texSize, texCoord, vec2(0., 1.));
68
+ }
69
+ }
70
+ `;
71
+ /**
72
+ * Edge Work -
73
+ * Picks out different frequencies in the image by subtracting two
74
+ * copies of the image blurred with different radii.
75
+ */
76
+ export const edgeWork = {
77
+ props: {},
78
+ uniforms: {},
79
+ name: 'edgeWork',
80
+ dependencies: [random],
81
+ fs,
82
+ uniformTypes: {
83
+ radius: 'f32',
84
+ mode: 'i32'
85
+ },
86
+ propTypes: {
87
+ radius: { value: 2, min: 1, softMax: 50 },
88
+ mode: { value: 0, private: true }
89
+ },
90
+ passes: [
91
+ {
92
+ sampler: true,
93
+ uniforms: { mode: 0 }
94
+ },
95
+ {
96
+ sampler: true,
97
+ uniforms: { mode: 1 }
98
+ }
99
+ ]
100
+ };
101
+ //# sourceMappingURL=edgework.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edgework.js","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-fun-filters/edgework.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAE5C,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiErB,CAAC;AAgBF;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,EAAmB;IAC1B,QAAQ,EAAE,EAAmB;IAE7B,IAAI,EAAE,UAAU;IAChB,YAAY,EAAE,CAAC,MAAM,CAAC;IACtB,EAAE;IACF,YAAY,EAAE;QACZ,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,KAAK;KACZ;IACD,SAAS,EAAE;QACT,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAC;QACvC,IAAI,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAC;KAChC;IAED,MAAM,EAAE;QACN;YACE,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC;SACpB;QACD;YACE,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC;SACpB;KACF;CAC0D,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Hexagonal Pixelate
3
+ * Renders the image using a pattern of hexagonal tiles.
4
+ * Tile colors are nearest-neighbor sampled from the centers of the tiles.
5
+ */
6
+ export type HexagonalPixelateProps = {
7
+ /** The [x, y] coordinates of the pattern center. */
8
+ center?: [number, number];
9
+ /** The width of an individual tile, in pixels. */
10
+ scale?: number;
11
+ };
12
+ export type HexagonalPixelateUniforms = HexagonalPixelateProps;
13
+ /**
14
+ * Hexagonal Pixelate
15
+ * Renders the image using a pattern of hexagonal tiles. Tile colors
16
+ * are nearest-neighbor sampled from the centers of the tiles.
17
+ */
18
+ export declare const hexagonalPixelate: {
19
+ readonly props: HexagonalPixelateProps;
20
+ readonly uniforms: HexagonalPixelateUniforms;
21
+ readonly name: "hexagonalPixelate";
22
+ readonly uniformTypes: {
23
+ readonly center: "vec2<f32>";
24
+ readonly scale: "f32";
25
+ };
26
+ readonly propTypes: {
27
+ readonly center: {
28
+ readonly value: readonly [0.5, 0.5];
29
+ readonly hint: "screenspace";
30
+ };
31
+ readonly scale: {
32
+ readonly value: 10;
33
+ readonly min: 1;
34
+ readonly softMin: 5;
35
+ readonly softMax: 50;
36
+ };
37
+ };
38
+ readonly fs: "uniform hexagonalPixelateUniforms {\n vec2 center;\n float scale;\n} hexagonalPixelate;\n\nvec4 hexagonalPixelate_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {\n vec2 tex = (texCoord * texSize - hexagonalPixelate.center * texSize) / hexagonalPixelate.scale;\n tex.y /= 0.866025404;\n tex.x -= tex.y * 0.5;\n\n vec2 a;\n if (tex.x + tex.y - floor(tex.x) - floor(tex.y) < 1.0) {\n a = vec2(floor(tex.x), floor(tex.y));\n }\n else a = vec2(ceil(tex.x), ceil(tex.y));\n vec2 b = vec2(ceil(tex.x), floor(tex.y));\n vec2 c = vec2(floor(tex.x), ceil(tex.y));\n\n vec3 TEX = vec3(tex.x, tex.y, 1.0 - tex.x - tex.y);\n vec3 A = vec3(a.x, a.y, 1.0 - a.x - a.y);\n vec3 B = vec3(b.x, b.y, 1.0 - b.x - b.y);\n vec3 C = vec3(c.x, c.y, 1.0 - c.x - c.y);\n\n float alen = length(TEX - A);\n float blen = length(TEX - B);\n float clen = length(TEX - C);\n\n vec2 choice;\n if (alen < blen) {\n if (alen < clen) choice = a;\n else choice = c;\n } else {\n if (blen < clen) choice = b;\n else choice = c;\n }\n\n choice.x += choice.y * 0.5;\n choice.y *= 0.866025404;\n choice *= hexagonalPixelate.scale / texSize;\n\n return texture(source, choice + hexagonalPixelate.center);\n}\n";
39
+ readonly passes: [{
40
+ readonly sampler: true;
41
+ }];
42
+ };
43
+ //# sourceMappingURL=hexagonalpixelate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hexagonalpixelate.d.ts","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-fun-filters/hexagonalpixelate.ts"],"names":[],"mappings":"AAmDA;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,oDAAoD;IACpD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;oBACf,sBAAsB;uBACnB,yBAAyB;;;;;;;;;;;;;;;;;;;;;;CAaoC,CAAC"}
@@ -0,0 +1,68 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ const fs = /* glsl */ `\
5
+ uniform hexagonalPixelateUniforms {
6
+ vec2 center;
7
+ float scale;
8
+ } hexagonalPixelate;
9
+
10
+ vec4 hexagonalPixelate_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
11
+ vec2 tex = (texCoord * texSize - hexagonalPixelate.center * texSize) / hexagonalPixelate.scale;
12
+ tex.y /= 0.866025404;
13
+ tex.x -= tex.y * 0.5;
14
+
15
+ vec2 a;
16
+ if (tex.x + tex.y - floor(tex.x) - floor(tex.y) < 1.0) {
17
+ a = vec2(floor(tex.x), floor(tex.y));
18
+ }
19
+ else a = vec2(ceil(tex.x), ceil(tex.y));
20
+ vec2 b = vec2(ceil(tex.x), floor(tex.y));
21
+ vec2 c = vec2(floor(tex.x), ceil(tex.y));
22
+
23
+ vec3 TEX = vec3(tex.x, tex.y, 1.0 - tex.x - tex.y);
24
+ vec3 A = vec3(a.x, a.y, 1.0 - a.x - a.y);
25
+ vec3 B = vec3(b.x, b.y, 1.0 - b.x - b.y);
26
+ vec3 C = vec3(c.x, c.y, 1.0 - c.x - c.y);
27
+
28
+ float alen = length(TEX - A);
29
+ float blen = length(TEX - B);
30
+ float clen = length(TEX - C);
31
+
32
+ vec2 choice;
33
+ if (alen < blen) {
34
+ if (alen < clen) choice = a;
35
+ else choice = c;
36
+ } else {
37
+ if (blen < clen) choice = b;
38
+ else choice = c;
39
+ }
40
+
41
+ choice.x += choice.y * 0.5;
42
+ choice.y *= 0.866025404;
43
+ choice *= hexagonalPixelate.scale / texSize;
44
+
45
+ return texture(source, choice + hexagonalPixelate.center);
46
+ }
47
+ `;
48
+ /**
49
+ * Hexagonal Pixelate
50
+ * Renders the image using a pattern of hexagonal tiles. Tile colors
51
+ * are nearest-neighbor sampled from the centers of the tiles.
52
+ */
53
+ export const hexagonalPixelate = {
54
+ props: {},
55
+ uniforms: {},
56
+ name: 'hexagonalPixelate',
57
+ uniformTypes: {
58
+ center: 'vec2<f32>',
59
+ scale: 'f32'
60
+ },
61
+ propTypes: {
62
+ center: { value: [0.5, 0.5], hint: 'screenspace' },
63
+ scale: { value: 10, min: 1, softMin: 5, softMax: 50 }
64
+ },
65
+ fs,
66
+ passes: [{ sampler: true }]
67
+ };
68
+ //# sourceMappingURL=hexagonalpixelate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hexagonalpixelate.js","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-fun-filters/hexagonalpixelate.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CrB,CAAC;AAgBF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,EAA4B;IACnC,QAAQ,EAAE,EAA+B;IAEzC,IAAI,EAAE,mBAAmB;IACzB,YAAY,EAAE;QACZ,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,KAAK;KACb;IACD,SAAS,EAAE;QACT,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,aAAa,EAAC;QAChD,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAC;KACpD;IACD,EAAE;IACF,MAAM,EAAE,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;CACoD,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Ink -
3
+ * Simulates outlining the image in ink by darkening edges stronger than a
4
+ * certain threshold. The edge detection value is the difference of two
5
+ * copies of the image, each blurred using a blur of a different radius.
6
+ */
7
+ export type InkProps = {
8
+ /** The multiplicative scale of the ink edges.
9
+ * Values in the range 0 to 1 are usually sufficient, where 0 doesn't change the image and 1 adds lots of black edges.
10
+ * Negative strength values will create white ink edges instead of black ones.
11
+ */
12
+ strength?: number;
13
+ };
14
+ export type InkUniforms = InkProps;
15
+ /**
16
+ * Ink -
17
+ * Simulates outlining the image in ink by darkening edges stronger than a
18
+ * certain threshold. The edge detection value is the difference of two
19
+ * copies of the image, each blurred using a blur of a different radius.
20
+ */
21
+ export declare const ink: {
22
+ readonly props: InkProps;
23
+ readonly uniforms: InkUniforms;
24
+ readonly name: "ink";
25
+ readonly fs: "uniform inkUniforms {\n float strength;\n} ink;\n\nvec4 ink_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {\n vec2 dx = vec2(1.0 / texSize.x, 0.0);\n vec2 dy = vec2(0.0, 1.0 / texSize.y);\n vec4 color = texture(source, texCoord);\n float bigTotal = 0.0;\n float smallTotal = 0.0;\n vec3 bigAverage = vec3(0.0);\n vec3 smallAverage = vec3(0.0);\n for (float x = -2.0; x <= 2.0; x += 1.0) {\n for (float y = -2.0; y <= 2.0; y += 1.0) {\n vec3 offsetColor = texture(source, texCoord + dx * x + dy * y).rgb;\n bigAverage += offsetColor;\n bigTotal += 1.0;\n if (abs(x) + abs(y) < 2.0) {\n smallAverage += offsetColor;\n smallTotal += 1.0;\n }\n }\n }\n vec3 edge = max(vec3(0.0), bigAverage / bigTotal - smallAverage / smallTotal);\n float power = ink.strength * ink.strength * ink.strength * ink.strength * ink.strength;\n return vec4(color.rgb - dot(edge, edge) * power * 100000.0, color.a);\n}\n";
26
+ readonly uniformTypes: {
27
+ readonly strength: "f32";
28
+ };
29
+ readonly propTypes: {
30
+ readonly strength: {
31
+ readonly value: 0.25;
32
+ readonly min: 0;
33
+ readonly softMax: 1;
34
+ };
35
+ };
36
+ readonly passes: [{
37
+ readonly sampler: true;
38
+ }];
39
+ };
40
+ //# sourceMappingURL=ink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ink.d.ts","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-fun-filters/ink.ts"],"names":[],"mappings":"AAoCA;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,GAAG;oBACD,QAAQ;uBACL,WAAW;;;;;;;;;;;;;;;;CAYsB,CAAC"}
@@ -0,0 +1,52 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ const fs = /* glsl */ `\
5
+ uniform inkUniforms {
6
+ float strength;
7
+ } ink;
8
+
9
+ vec4 ink_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
10
+ vec2 dx = vec2(1.0 / texSize.x, 0.0);
11
+ vec2 dy = vec2(0.0, 1.0 / texSize.y);
12
+ vec4 color = texture(source, texCoord);
13
+ float bigTotal = 0.0;
14
+ float smallTotal = 0.0;
15
+ vec3 bigAverage = vec3(0.0);
16
+ vec3 smallAverage = vec3(0.0);
17
+ for (float x = -2.0; x <= 2.0; x += 1.0) {
18
+ for (float y = -2.0; y <= 2.0; y += 1.0) {
19
+ vec3 offsetColor = texture(source, texCoord + dx * x + dy * y).rgb;
20
+ bigAverage += offsetColor;
21
+ bigTotal += 1.0;
22
+ if (abs(x) + abs(y) < 2.0) {
23
+ smallAverage += offsetColor;
24
+ smallTotal += 1.0;
25
+ }
26
+ }
27
+ }
28
+ vec3 edge = max(vec3(0.0), bigAverage / bigTotal - smallAverage / smallTotal);
29
+ float power = ink.strength * ink.strength * ink.strength * ink.strength * ink.strength;
30
+ return vec4(color.rgb - dot(edge, edge) * power * 100000.0, color.a);
31
+ }
32
+ `;
33
+ /**
34
+ * Ink -
35
+ * Simulates outlining the image in ink by darkening edges stronger than a
36
+ * certain threshold. The edge detection value is the difference of two
37
+ * copies of the image, each blurred using a blur of a different radius.
38
+ */
39
+ export const ink = {
40
+ props: {},
41
+ uniforms: {},
42
+ name: 'ink',
43
+ fs,
44
+ uniformTypes: {
45
+ strength: 'f32'
46
+ },
47
+ propTypes: {
48
+ strength: { value: 0.25, min: 0, softMax: 1 }
49
+ },
50
+ passes: [{ sampler: true }]
51
+ };
52
+ //# sourceMappingURL=ink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ink.js","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-fun-filters/ink.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BrB,CAAC;AAkBF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,KAAK,EAAE,EAAc;IACrB,QAAQ,EAAE,EAAiB;IAE3B,IAAI,EAAE,KAAK;IACX,EAAE;IAEF,YAAY,EAAE;QACZ,QAAQ,EAAE,KAAK;KAChB;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAC;KAC5C;IACD,MAAM,EAAE,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;CACwB,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Magnify - display a circle with magnify effect applied to surrounding the pixels given position
3
+ */
4
+ export type MagnifyProps = {
5
+ /** x, y position in screen coords, both x and y is normalized and in range `[0, 1]`. `[0, 0]` is the up left corner, `[1, 1]` is the bottom right corner. Default value is `[0, 0]`. */
6
+ screenXY?: [number, number];
7
+ /** effect radius in pixels. Default value is `100`. */
8
+ radiusPixels?: number;
9
+ /** magnify level. Default value is `2`. */
10
+ zoom?: number;
11
+ /** border width of the effect circle, will not show border if value <= 0.0. Default value is `0`. */
12
+ borderWidthPixels?: number;
13
+ /** border color of the effect circle. Default value is `[255, 255, 255, 255]`. */
14
+ borderColor?: [number, number, number, number];
15
+ };
16
+ export type MagnifyUniforms = MagnifyProps;
17
+ /**
18
+ * Magnify - display a circle with magnify effect applied to surrounding the pixels given position
19
+ */
20
+ export declare const magnify: {
21
+ readonly name: "magnify";
22
+ readonly uniformTypes: {
23
+ readonly screenXY: "vec2<f32>";
24
+ readonly radiusPixels: "f32";
25
+ readonly zoom: "f32";
26
+ readonly borderWidthPixels: "f32";
27
+ readonly borderColor: "vec4<f32>";
28
+ };
29
+ readonly propTypes: {
30
+ readonly screenXY: {
31
+ readonly value: readonly [0, 0];
32
+ };
33
+ readonly radiusPixels: 200;
34
+ readonly zoom: 2;
35
+ readonly borderWidthPixels: 0;
36
+ readonly borderColor: {
37
+ readonly value: readonly [255, 255, 255, 255];
38
+ };
39
+ };
40
+ readonly fs: "uniform magnifyUniforms {\n vec2 screenXY;\n float radiusPixels;\n float zoom;\n float borderWidthPixels;\n vec4 borderColor;\n} magnify;\n\nvec4 magnify_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {\n vec2 pos = vec2(magnify.screenXY.x, 1.0 - magnify.screenXY.y);\n float dist = distance(texCoord * texSize, pos * texSize);\n if (dist < magnify.radiusPixels) {\n return texture(source, (texCoord - pos) / magnify.zoom + pos);\n }\n\n if (dist <= magnify.radiusPixels + magnify.borderWidthPixels) {\n return magnify.borderColor;\n }\n return texture(source, texCoord);\n}\n";
41
+ readonly passes: [{
42
+ readonly sampler: true;
43
+ }];
44
+ };
45
+ //# sourceMappingURL=magnify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magnify.d.ts","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-fun-filters/magnify.ts"],"names":[],"mappings":"AA6BA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,wLAAwL;IACxL,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qGAAqG;IACrG,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kFAAkF;IAClF,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;CAmBuC,CAAC"}
@@ -0,0 +1,49 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ const fs = /* glsl */ `\
5
+ uniform magnifyUniforms {
6
+ vec2 screenXY;
7
+ float radiusPixels;
8
+ float zoom;
9
+ float borderWidthPixels;
10
+ vec4 borderColor;
11
+ } magnify;
12
+
13
+ vec4 magnify_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
14
+ vec2 pos = vec2(magnify.screenXY.x, 1.0 - magnify.screenXY.y);
15
+ float dist = distance(texCoord * texSize, pos * texSize);
16
+ if (dist < magnify.radiusPixels) {
17
+ return texture(source, (texCoord - pos) / magnify.zoom + pos);
18
+ }
19
+
20
+ if (dist <= magnify.radiusPixels + magnify.borderWidthPixels) {
21
+ return magnify.borderColor;
22
+ }
23
+ return texture(source, texCoord);
24
+ }
25
+ `;
26
+ /**
27
+ * Magnify - display a circle with magnify effect applied to surrounding the pixels given position
28
+ */
29
+ export const magnify = {
30
+ name: 'magnify',
31
+ uniformTypes: {
32
+ screenXY: 'vec2<f32>',
33
+ radiusPixels: 'f32',
34
+ zoom: 'f32',
35
+ borderWidthPixels: 'f32',
36
+ borderColor: 'vec4<f32>'
37
+ },
38
+ propTypes: {
39
+ // range 0 to 1
40
+ screenXY: { value: [0, 0] },
41
+ radiusPixels: 200,
42
+ zoom: 2.0,
43
+ borderWidthPixels: 0.0,
44
+ borderColor: { value: [255, 255, 255, 255] }
45
+ },
46
+ fs,
47
+ passes: [{ sampler: true }]
48
+ };
49
+ //# sourceMappingURL=magnify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magnify.js","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-fun-filters/magnify.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;CAqBrB,CAAC;AAoBF;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,SAAS;IACf,YAAY,EAAE;QACZ,QAAQ,EAAE,WAAW;QACrB,YAAY,EAAE,KAAK;QACnB,IAAI,EAAE,KAAK;QACX,iBAAiB,EAAE,KAAK;QACxB,WAAW,EAAE,WAAW;KACzB;IACD,SAAS,EAAE;QACT,eAAe;QACf,QAAQ,EAAE,EAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC;QACzB,YAAY,EAAE,GAAG;QACjB,IAAI,EAAE,GAAG;QACT,iBAAiB,EAAE,GAAG;QACtB,WAAW,EAAE,EAAC,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAC;KAC3C;IACD,EAAE;IACF,MAAM,EAAE,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;CACgC,CAAC"}
@@ -0,0 +1,49 @@
1
+ /** Bulges or pinches the image in a circle. */
2
+ export type BulgePinchProps = {
3
+ /** The [x, y] coordinates of the center of the circle of effect. */
4
+ center?: [number, number];
5
+ /** The radius of the circle of effect. */
6
+ radius?: number;
7
+ /** strength -1 to 1 (-1 is strong pinch, 0 is no effect, 1 is strong bulge) */
8
+ strength?: number;
9
+ };
10
+ export type BulgePinchUniforms = BulgePinchProps;
11
+ /**
12
+ * Bulge / Pinch -
13
+ * Bulges or pinches the image in a circle.
14
+ */
15
+ export declare const bulgePinch: {
16
+ readonly props: BulgePinchProps;
17
+ readonly uniforms: BulgePinchUniforms;
18
+ readonly name: "bulgePinch";
19
+ readonly dependencies: [{
20
+ readonly name: "warp";
21
+ readonly passes: [];
22
+ readonly fs: "vec4 warp_sampleColor(sampler2D source, vec2 texSize, vec2 coord) {\n vec4 color = texture(source, coord / texSize);\n vec2 clampedCoord = clamp(coord, vec2(0.0), texSize);\n if (coord != clampedCoord) {\n /* fade to transparent if we are outside the image */\n color.a *= max(0.0, 1.0 - length(coord - clampedCoord));\n }\n\n return color;\n}\n";
23
+ }];
24
+ readonly fs: "uniform bulgePinchUniforms {\n float radius;\n float strength;\n vec2 center;\n} bulgePinch;\n\nvec2 bulgePinch_warp(vec2 coord, vec2 texCenter) {\n coord -= texCenter;\n float distance = length(coord);\n if (distance < bulgePinch.radius) {\n float percent = distance / bulgePinch.radius;\n if (bulgePinch.strength > 0.0) {\n coord *= mix(1.0, smoothstep(0.0, bulgePinch.radius / distance, percent), bulgePinch.strength * 0.75);\n } else {\n coord *= mix(1.0, pow(percent, 1.0 + bulgePinch.strength * 0.75) * bulgePinch.radius / distance, 1.0 - percent);\n }\n }\n coord += texCenter;\n return coord;\n}\n\nvec4 bulgePinch_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {\n vec2 coord = texCoord * texSize;\n coord = bulgePinch_warp(coord, bulgePinch.center * texSize);\n\n return warp_sampleColor(source, texSize, coord);\n}\n";
25
+ readonly uniformTypes: {
26
+ readonly center: "vec2<f32>";
27
+ readonly radius: "f32";
28
+ readonly strength: "f32";
29
+ };
30
+ readonly propTypes: {
31
+ readonly center: {
32
+ readonly value: readonly [0.5, 0.5];
33
+ };
34
+ readonly radius: {
35
+ readonly value: 200;
36
+ readonly min: 1;
37
+ readonly softMax: 600;
38
+ };
39
+ readonly strength: {
40
+ readonly value: 0.5;
41
+ readonly min: -1;
42
+ readonly max: 1;
43
+ };
44
+ };
45
+ readonly passes: [{
46
+ readonly sampler: true;
47
+ }];
48
+ };
49
+ //# sourceMappingURL=bulgepinch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulgepinch.d.ts","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-warp-filters/bulgepinch.ts"],"names":[],"mappings":"AAqCA,+CAA+C;AAC/C,MAAM,MAAM,eAAe,GAAG;IAC5B,oEAAoE;IACpE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,UAAU;oBACR,eAAe;uBACZ,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgB6B,CAAC"}
@@ -0,0 +1,56 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { warp } from "./warp.js";
5
+ const fs = /* glsl */ `\
6
+ uniform bulgePinchUniforms {
7
+ float radius;
8
+ float strength;
9
+ vec2 center;
10
+ } bulgePinch;
11
+
12
+ vec2 bulgePinch_warp(vec2 coord, vec2 texCenter) {
13
+ coord -= texCenter;
14
+ float distance = length(coord);
15
+ if (distance < bulgePinch.radius) {
16
+ float percent = distance / bulgePinch.radius;
17
+ if (bulgePinch.strength > 0.0) {
18
+ coord *= mix(1.0, smoothstep(0.0, bulgePinch.radius / distance, percent), bulgePinch.strength * 0.75);
19
+ } else {
20
+ coord *= mix(1.0, pow(percent, 1.0 + bulgePinch.strength * 0.75) * bulgePinch.radius / distance, 1.0 - percent);
21
+ }
22
+ }
23
+ coord += texCenter;
24
+ return coord;
25
+ }
26
+
27
+ vec4 bulgePinch_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
28
+ vec2 coord = texCoord * texSize;
29
+ coord = bulgePinch_warp(coord, bulgePinch.center * texSize);
30
+
31
+ return warp_sampleColor(source, texSize, coord);
32
+ }
33
+ `;
34
+ /**
35
+ * Bulge / Pinch -
36
+ * Bulges or pinches the image in a circle.
37
+ */
38
+ export const bulgePinch = {
39
+ props: {},
40
+ uniforms: {},
41
+ name: 'bulgePinch',
42
+ dependencies: [warp],
43
+ fs,
44
+ uniformTypes: {
45
+ center: 'vec2<f32>',
46
+ radius: 'f32',
47
+ strength: 'f32'
48
+ },
49
+ propTypes: {
50
+ center: { value: [0.5, 0.5] },
51
+ radius: { value: 200, min: 1, softMax: 600 },
52
+ strength: { value: 0.5, min: -1, max: 1 }
53
+ },
54
+ passes: [{ sampler: true }]
55
+ };
56
+ //# sourceMappingURL=bulgepinch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulgepinch.js","sourceRoot":"","sources":["../../../../src/passes/postprocessing/image-warp-filters/bulgepinch.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,IAAI,EAAC,kBAAe;AAE5B,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BrB,CAAC;AAcF;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,EAAqB;IAC5B,QAAQ,EAAE,EAAwB;IAElC,IAAI,EAAE,YAAY;IAClB,YAAY,EAAE,CAAC,IAAI,CAAC;IACpB,EAAE;IACF,YAAY,EAAE;QACZ,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK;KAChB;IACD,SAAS,EAAE;QACT,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAC;QAC3B,MAAM,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAC;QAC1C,QAAQ,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC;KACxC;IACD,MAAM,EAAE,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;CACsC,CAAC"}