@react-three/postprocessing 2.19.0 → 3.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +81 -81
  3. package/dist/index.d.ts +1 -38
  4. package/dist/index.js +554 -88
  5. package/dist/index.js.map +1 -1
  6. package/package.json +69 -96
  7. package/src/EffectComposer.test.tsx +126 -0
  8. package/src/EffectComposer.tsx +202 -0
  9. package/src/Selection.tsx +46 -0
  10. package/src/effects/ASCII.tsx +135 -0
  11. package/src/effects/Autofocus.tsx +153 -0
  12. package/src/effects/Bloom.tsx +6 -0
  13. package/src/effects/BrightnessContrast.tsx +4 -0
  14. package/src/effects/ChromaticAberration.tsx +5 -0
  15. package/src/effects/ColorAverage.tsx +15 -0
  16. package/src/effects/ColorDepth.tsx +4 -0
  17. package/src/effects/Depth.tsx +4 -0
  18. package/src/effects/DepthOfField.tsx +89 -0
  19. package/src/effects/DotScreen.tsx +4 -0
  20. package/src/effects/FXAA.tsx +4 -0
  21. package/src/effects/Glitch.tsx +40 -0
  22. package/src/effects/GodRays.tsx +16 -0
  23. package/src/effects/Grid.tsx +21 -0
  24. package/src/effects/HueSaturation.tsx +4 -0
  25. package/src/effects/LUT.tsx +26 -0
  26. package/{dist/effects/LensFlare.js → src/effects/LensFlare.tsx} +611 -556
  27. package/src/effects/N8AO.tsx +81 -0
  28. package/src/effects/Noise.tsx +4 -0
  29. package/src/effects/Outline.tsx +117 -0
  30. package/src/effects/Pixelation.tsx +15 -0
  31. package/{dist/effects/Ramp.js → src/effects/Ramp.tsx} +150 -156
  32. package/src/effects/SMAA.tsx +4 -0
  33. package/src/effects/SSAO.tsx +41 -0
  34. package/src/effects/ScanlineEffect.tsx +7 -0
  35. package/src/effects/SelectiveBloom.tsx +126 -0
  36. package/src/effects/Sepia.tsx +4 -0
  37. package/src/effects/ShockWave.tsx +4 -0
  38. package/src/effects/Texture.tsx +23 -0
  39. package/src/effects/TiltShift.tsx +4 -0
  40. package/{dist/effects/TiltShift2.js → src/effects/TiltShift2.tsx} +90 -98
  41. package/src/effects/ToneMapping.tsx +6 -0
  42. package/src/effects/Vignette.tsx +4 -0
  43. package/{dist/effects/Water.js → src/effects/Water.tsx} +35 -38
  44. package/src/index.ts +40 -0
  45. package/src/util.tsx +55 -0
  46. package/dist/EffectComposer.cjs +0 -137
  47. package/dist/EffectComposer.cjs.map +0 -1
  48. package/dist/EffectComposer.d.ts +0 -27
  49. package/dist/EffectComposer.js +0 -137
  50. package/dist/EffectComposer.js.map +0 -1
  51. package/dist/EffectComposer.test.d.ts +0 -4
  52. package/dist/Selection.cjs +0 -36
  53. package/dist/Selection.cjs.map +0 -1
  54. package/dist/Selection.d.ts +0 -16
  55. package/dist/Selection.js +0 -36
  56. package/dist/Selection.js.map +0 -1
  57. package/dist/compat.cjs +0 -77
  58. package/dist/compat.cjs.map +0 -1
  59. package/dist/compat.js +0 -60
  60. package/dist/compat.js.map +0 -1
  61. package/dist/effects/ASCII.cjs +0 -113
  62. package/dist/effects/ASCII.cjs.map +0 -1
  63. package/dist/effects/ASCII.d.ts +0 -17
  64. package/dist/effects/ASCII.js +0 -113
  65. package/dist/effects/ASCII.js.map +0 -1
  66. package/dist/effects/Autofocus.cjs +0 -126
  67. package/dist/effects/Autofocus.cjs.map +0 -1
  68. package/dist/effects/Autofocus.d.ts +0 -22
  69. package/dist/effects/Autofocus.js +0 -109
  70. package/dist/effects/Autofocus.js.map +0 -1
  71. package/dist/effects/Bloom.cjs +0 -9
  72. package/dist/effects/Bloom.cjs.map +0 -1
  73. package/dist/effects/Bloom.d.ts +0 -6
  74. package/dist/effects/Bloom.js +0 -9
  75. package/dist/effects/Bloom.js.map +0 -1
  76. package/dist/effects/BrightnessContrast.cjs +0 -7
  77. package/dist/effects/BrightnessContrast.cjs.map +0 -1
  78. package/dist/effects/BrightnessContrast.d.ts +0 -10
  79. package/dist/effects/BrightnessContrast.js +0 -7
  80. package/dist/effects/BrightnessContrast.js.map +0 -1
  81. package/dist/effects/ChromaticAberration.cjs +0 -7
  82. package/dist/effects/ChromaticAberration.cjs.map +0 -1
  83. package/dist/effects/ChromaticAberration.d.ts +0 -13
  84. package/dist/effects/ChromaticAberration.js +0 -7
  85. package/dist/effects/ChromaticAberration.js.map +0 -1
  86. package/dist/effects/ColorAverage.cjs +0 -11
  87. package/dist/effects/ColorAverage.cjs.map +0 -1
  88. package/dist/effects/ColorAverage.d.ts +0 -8
  89. package/dist/effects/ColorAverage.js +0 -11
  90. package/dist/effects/ColorAverage.js.map +0 -1
  91. package/dist/effects/ColorDepth.cjs +0 -7
  92. package/dist/effects/ColorDepth.cjs.map +0 -1
  93. package/dist/effects/ColorDepth.d.ts +0 -9
  94. package/dist/effects/ColorDepth.js +0 -7
  95. package/dist/effects/ColorDepth.js.map +0 -1
  96. package/dist/effects/Depth.cjs +0 -7
  97. package/dist/effects/Depth.cjs.map +0 -1
  98. package/dist/effects/Depth.d.ts +0 -9
  99. package/dist/effects/Depth.js +0 -7
  100. package/dist/effects/Depth.js.map +0 -1
  101. package/dist/effects/DepthOfField.cjs +0 -74
  102. package/dist/effects/DepthOfField.cjs.map +0 -1
  103. package/dist/effects/DepthOfField.d.ts +0 -25
  104. package/dist/effects/DepthOfField.js +0 -74
  105. package/dist/effects/DepthOfField.js.map +0 -1
  106. package/dist/effects/DotScreen.cjs +0 -7
  107. package/dist/effects/DotScreen.cjs.map +0 -1
  108. package/dist/effects/DotScreen.d.ts +0 -10
  109. package/dist/effects/DotScreen.js +0 -7
  110. package/dist/effects/DotScreen.js.map +0 -1
  111. package/dist/effects/FXAA.cjs +0 -7
  112. package/dist/effects/FXAA.cjs.map +0 -1
  113. package/dist/effects/FXAA.d.ts +0 -8
  114. package/dist/effects/FXAA.js +0 -7
  115. package/dist/effects/FXAA.js.map +0 -1
  116. package/dist/effects/Glitch.cjs +0 -31
  117. package/dist/effects/Glitch.cjs.map +0 -1
  118. package/dist/effects/Glitch.d.ts +0 -30
  119. package/dist/effects/Glitch.js +0 -31
  120. package/dist/effects/Glitch.js.map +0 -1
  121. package/dist/effects/GodRays.cjs +0 -15
  122. package/dist/effects/GodRays.cjs.map +0 -1
  123. package/dist/effects/GodRays.d.ts +0 -21
  124. package/dist/effects/GodRays.js +0 -15
  125. package/dist/effects/GodRays.js.map +0 -1
  126. package/dist/effects/Grid.cjs +0 -18
  127. package/dist/effects/Grid.cjs.map +0 -1
  128. package/dist/effects/Grid.d.ts +0 -12
  129. package/dist/effects/Grid.js +0 -18
  130. package/dist/effects/Grid.js.map +0 -1
  131. package/dist/effects/HueSaturation.cjs +0 -7
  132. package/dist/effects/HueSaturation.cjs.map +0 -1
  133. package/dist/effects/HueSaturation.d.ts +0 -10
  134. package/dist/effects/HueSaturation.js +0 -7
  135. package/dist/effects/HueSaturation.js.map +0 -1
  136. package/dist/effects/LUT.cjs +0 -20
  137. package/dist/effects/LUT.cjs.map +0 -1
  138. package/dist/effects/LUT.d.ts +0 -9
  139. package/dist/effects/LUT.js +0 -20
  140. package/dist/effects/LUT.js.map +0 -1
  141. package/dist/effects/LensFlare.cjs +0 -573
  142. package/dist/effects/LensFlare.cjs.map +0 -1
  143. package/dist/effects/LensFlare.d.ts +0 -55
  144. package/dist/effects/LensFlare.js.map +0 -1
  145. package/dist/effects/N8AO/BlueNoise.cjs +0 -4
  146. package/dist/effects/N8AO/BlueNoise.cjs.map +0 -1
  147. package/dist/effects/N8AO/BlueNoise.js +0 -5
  148. package/dist/effects/N8AO/BlueNoise.js.map +0 -1
  149. package/dist/effects/N8AO/DepthDownSample.cjs +0 -183
  150. package/dist/effects/N8AO/DepthDownSample.cjs.map +0 -1
  151. package/dist/effects/N8AO/DepthDownSample.js +0 -166
  152. package/dist/effects/N8AO/DepthDownSample.js.map +0 -1
  153. package/dist/effects/N8AO/EffectCompositer.cjs +0 -278
  154. package/dist/effects/N8AO/EffectCompositer.cjs.map +0 -1
  155. package/dist/effects/N8AO/EffectCompositer.js +0 -261
  156. package/dist/effects/N8AO/EffectCompositer.js.map +0 -1
  157. package/dist/effects/N8AO/EffectShader.cjs +0 -236
  158. package/dist/effects/N8AO/EffectShader.cjs.map +0 -1
  159. package/dist/effects/N8AO/EffectShader.js +0 -219
  160. package/dist/effects/N8AO/EffectShader.js.map +0 -1
  161. package/dist/effects/N8AO/FullScreenTriangle.cjs +0 -59
  162. package/dist/effects/N8AO/FullScreenTriangle.cjs.map +0 -1
  163. package/dist/effects/N8AO/FullScreenTriangle.js +0 -42
  164. package/dist/effects/N8AO/FullScreenTriangle.js.map +0 -1
  165. package/dist/effects/N8AO/N8AOPostPass.cjs +0 -502
  166. package/dist/effects/N8AO/N8AOPostPass.cjs.map +0 -1
  167. package/dist/effects/N8AO/N8AOPostPass.js +0 -485
  168. package/dist/effects/N8AO/N8AOPostPass.js.map +0 -1
  169. package/dist/effects/N8AO/PoissionBlur.cjs +0 -186
  170. package/dist/effects/N8AO/PoissionBlur.cjs.map +0 -1
  171. package/dist/effects/N8AO/PoissionBlur.js +0 -169
  172. package/dist/effects/N8AO/PoissionBlur.js.map +0 -1
  173. package/dist/effects/N8AO/index.cjs +0 -60
  174. package/dist/effects/N8AO/index.cjs.map +0 -1
  175. package/dist/effects/N8AO/index.d.ts +0 -18
  176. package/dist/effects/N8AO/index.js +0 -60
  177. package/dist/effects/N8AO/index.js.map +0 -1
  178. package/dist/effects/Noise.cjs +0 -7
  179. package/dist/effects/Noise.cjs.map +0 -1
  180. package/dist/effects/Noise.d.ts +0 -9
  181. package/dist/effects/Noise.js +0 -7
  182. package/dist/effects/Noise.js.map +0 -1
  183. package/dist/effects/Outline.cjs +0 -100
  184. package/dist/effects/Outline.cjs.map +0 -1
  185. package/dist/effects/Outline.d.ts +0 -30
  186. package/dist/effects/Outline.js +0 -100
  187. package/dist/effects/Outline.js.map +0 -1
  188. package/dist/effects/Pixelation.cjs +0 -11
  189. package/dist/effects/Pixelation.cjs.map +0 -1
  190. package/dist/effects/Pixelation.d.ts +0 -6
  191. package/dist/effects/Pixelation.js +0 -11
  192. package/dist/effects/Pixelation.js.map +0 -1
  193. package/dist/effects/Ramp.cjs +0 -156
  194. package/dist/effects/Ramp.cjs.map +0 -1
  195. package/dist/effects/Ramp.d.ts +0 -88
  196. package/dist/effects/Ramp.js.map +0 -1
  197. package/dist/effects/SMAA.cjs +0 -7
  198. package/dist/effects/SMAA.cjs.map +0 -1
  199. package/dist/effects/SMAA.d.ts +0 -10
  200. package/dist/effects/SMAA.js +0 -7
  201. package/dist/effects/SMAA.js.map +0 -1
  202. package/dist/effects/SSAO.cjs +0 -37
  203. package/dist/effects/SSAO.cjs.map +0 -1
  204. package/dist/effects/SSAO.d.ts +0 -30
  205. package/dist/effects/SSAO.js +0 -37
  206. package/dist/effects/SSAO.js.map +0 -1
  207. package/dist/effects/SSR/index.cjs +0 -33
  208. package/dist/effects/SSR/index.cjs.map +0 -1
  209. package/dist/effects/SSR/index.d.ts +0 -55
  210. package/dist/effects/SSR/index.js +0 -33
  211. package/dist/effects/SSR/index.js.map +0 -1
  212. package/dist/effects/SSR/screen-space-reflections.cjs +0 -1699
  213. package/dist/effects/SSR/screen-space-reflections.cjs.map +0 -1
  214. package/dist/effects/SSR/screen-space-reflections.js +0 -1699
  215. package/dist/effects/SSR/screen-space-reflections.js.map +0 -1
  216. package/dist/effects/ScanlineEffect.cjs +0 -7
  217. package/dist/effects/ScanlineEffect.cjs.map +0 -1
  218. package/dist/effects/ScanlineEffect.d.ts +0 -9
  219. package/dist/effects/ScanlineEffect.js +0 -7
  220. package/dist/effects/ScanlineEffect.js.map +0 -1
  221. package/dist/effects/SelectiveBloom.cjs +0 -94
  222. package/dist/effects/SelectiveBloom.cjs.map +0 -1
  223. package/dist/effects/SelectiveBloom.d.ts +0 -20
  224. package/dist/effects/SelectiveBloom.js +0 -94
  225. package/dist/effects/SelectiveBloom.js.map +0 -1
  226. package/dist/effects/Sepia.cjs +0 -7
  227. package/dist/effects/Sepia.cjs.map +0 -1
  228. package/dist/effects/Sepia.d.ts +0 -9
  229. package/dist/effects/Sepia.js +0 -7
  230. package/dist/effects/Sepia.js.map +0 -1
  231. package/dist/effects/ShockWave.cjs +0 -7
  232. package/dist/effects/ShockWave.cjs.map +0 -1
  233. package/dist/effects/ShockWave.d.ts +0 -6
  234. package/dist/effects/ShockWave.js +0 -7
  235. package/dist/effects/ShockWave.js.map +0 -1
  236. package/dist/effects/Texture.cjs +0 -21
  237. package/dist/effects/Texture.cjs.map +0 -1
  238. package/dist/effects/Texture.d.ts +0 -11
  239. package/dist/effects/Texture.js +0 -21
  240. package/dist/effects/Texture.js.map +0 -1
  241. package/dist/effects/TiltShift.cjs +0 -7
  242. package/dist/effects/TiltShift.cjs.map +0 -1
  243. package/dist/effects/TiltShift.d.ts +0 -17
  244. package/dist/effects/TiltShift.js +0 -7
  245. package/dist/effects/TiltShift.js.map +0 -1
  246. package/dist/effects/TiltShift2.cjs +0 -98
  247. package/dist/effects/TiltShift2.cjs.map +0 -1
  248. package/dist/effects/TiltShift2.d.ts +0 -30
  249. package/dist/effects/TiltShift2.js.map +0 -1
  250. package/dist/effects/ToneMapping.cjs +0 -7
  251. package/dist/effects/ToneMapping.cjs.map +0 -1
  252. package/dist/effects/ToneMapping.d.ts +0 -19
  253. package/dist/effects/ToneMapping.js +0 -7
  254. package/dist/effects/ToneMapping.js.map +0 -1
  255. package/dist/effects/Vignette.cjs +0 -7
  256. package/dist/effects/Vignette.cjs.map +0 -1
  257. package/dist/effects/Vignette.d.ts +0 -12
  258. package/dist/effects/Vignette.js +0 -7
  259. package/dist/effects/Vignette.js.map +0 -1
  260. package/dist/effects/Water.cjs +0 -38
  261. package/dist/effects/Water.cjs.map +0 -1
  262. package/dist/effects/Water.d.ts +0 -15
  263. package/dist/effects/Water.js.map +0 -1
  264. package/dist/index.cjs +0 -89
  265. package/dist/index.cjs.map +0 -1
  266. package/dist/util.cjs +0 -69
  267. package/dist/util.cjs.map +0 -1
  268. package/dist/util.d.ts +0 -13
  269. package/dist/util.js +0 -52
  270. package/dist/util.js.map +0 -1
@@ -1,21 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { TextureEffect } from "postprocessing";
3
- import { forwardRef, useLayoutEffect, useMemo } from "react";
4
- import { useLoader } from "@react-three/fiber";
5
- import { TextureLoader, RepeatWrapping } from "three";
6
- const Texture = forwardRef(function Texture2({ textureSrc, texture, opacity = 1, ...props }, ref) {
7
- const t = useLoader(TextureLoader, textureSrc);
8
- useLayoutEffect(() => {
9
- if ("encoding" in t)
10
- t.encoding = 3001;
11
- else
12
- t.colorSpace = "srgb";
13
- t.wrapS = t.wrapT = RepeatWrapping;
14
- }, [t]);
15
- const effect = useMemo(() => new TextureEffect({ ...props, texture: t || texture }), [props, t, texture]);
16
- return /* @__PURE__ */ jsx("primitive", { ref, object: effect, "blendMode-opacity-value": opacity, dispose: null });
17
- });
18
- export {
19
- Texture
20
- };
21
- //# sourceMappingURL=Texture.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Texture.js","sources":["../../src/effects/Texture.tsx"],"sourcesContent":["import { TextureEffect } from 'postprocessing'\nimport { Ref, forwardRef, useMemo, useLayoutEffect } from 'react'\nimport { useLoader } from '@react-three/fiber'\nimport { TextureLoader, RepeatWrapping } from 'three'\n\ntype TextureProps = ConstructorParameters<typeof TextureEffect>[0] & {\n textureSrc: string\n /** opacity of provided texture */\n opacity?: number\n}\n\nexport const Texture = forwardRef<TextureEffect, TextureProps>(function Texture(\n { textureSrc, texture, opacity = 1, ...props }: TextureProps,\n ref: Ref<TextureEffect>\n) {\n const t = useLoader(TextureLoader, textureSrc)\n useLayoutEffect(() => {\n // @ts-ignore\n if ('encoding' in t) t.encoding = 3001 // sRGBEncoding\n // @ts-ignore\n else t.colorSpace = 'srgb'\n t.wrapS = t.wrapT = RepeatWrapping\n }, [t])\n const effect = useMemo(() => new TextureEffect({ ...props, texture: t || texture }), [props, t, texture])\n return <primitive ref={ref} object={effect} blendMode-opacity-value={opacity} dispose={null} />\n})\n"],"names":["Texture"],"mappings":";;;;;AAWO,MAAM,UAAU,WAAwC,SAASA,SACtE,EAAE,YAAY,SAAS,UAAU,GAAG,GAAG,MAAM,GAC7C,KACA;AACM,QAAA,IAAI,UAAU,eAAe,UAAU;AAC7C,kBAAgB,MAAM;AAEpB,QAAI,cAAc;AAAG,QAAE,WAAW;AAAA;AAE7B,QAAE,aAAa;AAClB,MAAA,QAAQ,EAAE,QAAQ;AAAA,EAAA,GACnB,CAAC,CAAC,CAAC;AACN,QAAM,SAAS,QAAQ,MAAM,IAAI,cAAc,EAAE,GAAG,OAAO,SAAS,KAAK,QAAS,CAAA,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;AACjG,SAAA,oBAAC,eAAU,KAAU,QAAQ,QAAQ,2BAAyB,SAAS,SAAS,KAAM,CAAA;AAC/F,CAAC;"}
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const postprocessing = require("postprocessing");
4
- const util = require("../util.cjs");
5
- const TiltShift = util.wrapEffect(postprocessing.TiltShiftEffect, { blendFunction: postprocessing.BlendFunction.ADD });
6
- exports.TiltShift = TiltShift;
7
- //# sourceMappingURL=TiltShift.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TiltShift.cjs","sources":["../../src/effects/TiltShift.tsx"],"sourcesContent":["import { TiltShiftEffect, BlendFunction } from 'postprocessing'\nimport { wrapEffect } from '../util'\n\nexport const TiltShift = wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.ADD })\n"],"names":["wrapEffect","TiltShiftEffect","BlendFunction"],"mappings":";;;;AAGO,MAAM,YAAYA,KAAW,WAAAC,eAAA,iBAAiB,EAAE,eAAeC,eAAAA,cAAc,IAAK,CAAA;;"}
@@ -1,17 +0,0 @@
1
- /// <reference types="react" />
2
- import { TiltShiftEffect, BlendFunction } from 'postprocessing';
3
- export declare const TiltShift: import("react").ForwardRefExoticComponent<Omit<import("@react-three/fiber").ExtendedColors<import("@react-three/fiber").Overwrite<Partial<TiltShiftEffect>, import("@react-three/fiber").NodeProps<TiltShiftEffect, typeof TiltShiftEffect>>> & {
4
- blendFunction?: BlendFunction | undefined;
5
- offset?: number | undefined;
6
- rotation?: number | undefined;
7
- focusArea?: number | undefined;
8
- feather?: number | undefined;
9
- bias?: number | undefined;
10
- kernelSize?: import("postprocessing").KernelSize | undefined;
11
- resolutionScale?: number | undefined;
12
- resolutionX?: number | undefined;
13
- resolutionY?: number | undefined;
14
- } & {
15
- blendFunction?: BlendFunction | undefined;
16
- opacity?: number | undefined;
17
- }, "ref"> & import("react").RefAttributes<typeof TiltShiftEffect>>;
@@ -1,7 +0,0 @@
1
- import { BlendFunction, TiltShiftEffect } from "postprocessing";
2
- import { wrapEffect } from "../util.js";
3
- const TiltShift = wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.ADD });
4
- export {
5
- TiltShift
6
- };
7
- //# sourceMappingURL=TiltShift.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TiltShift.js","sources":["../../src/effects/TiltShift.tsx"],"sourcesContent":["import { TiltShiftEffect, BlendFunction } from 'postprocessing'\nimport { wrapEffect } from '../util'\n\nexport const TiltShift = wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.ADD })\n"],"names":[],"mappings":";;AAGO,MAAM,YAAY,WAAW,iBAAiB,EAAE,eAAe,cAAc,IAAK,CAAA;"}
@@ -1,98 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const THREE = require("three");
4
- const postprocessing = require("postprocessing");
5
- const util = require("../util.cjs");
6
- const TiltShiftShader = {
7
- fragmentShader: `
8
-
9
- // original shader by Evan Wallace
10
-
11
- #define MAX_ITERATIONS 100
12
-
13
- uniform float blur;
14
- uniform float taper;
15
- uniform vec2 start;
16
- uniform vec2 end;
17
- uniform vec2 direction;
18
- uniform int samples;
19
-
20
- float random(vec3 scale, float seed) {
21
- /* use the fragment position for a different seed per-pixel */
22
- return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);
23
- }
24
-
25
- void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {
26
- vec4 color = vec4(0.0);
27
- float total = 0.0;
28
- vec2 startPixel = vec2(start.x * resolution.x, start.y * resolution.y);
29
- vec2 endPixel = vec2(end.x * resolution.x, end.y * resolution.y);
30
- float f_samples = float(samples);
31
- float half_samples = f_samples / 2.0;
32
-
33
- // use screen diagonal to normalize blur radii
34
- float maxScreenDistance = distance(vec2(0.0), resolution); // diagonal distance
35
- float gradientRadius = taper * (maxScreenDistance);
36
- float blurRadius = blur * (maxScreenDistance / 16.0);
37
-
38
- /* randomize the lookup values to hide the fixed number of samples */
39
- float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);
40
- vec2 normal = normalize(vec2(startPixel.y - endPixel.y, endPixel.x - startPixel.x));
41
- float radius = smoothstep(0.0, 1.0, abs(dot(uv * resolution - startPixel, normal)) / gradientRadius) * blurRadius;
42
-
43
- #pragma unroll_loop_start
44
- for (int i = 0; i <= MAX_ITERATIONS; i++) {
45
- if (i >= samples) { break; } // return early if over sample count
46
- float f_i = float(i);
47
- float s_i = -half_samples + f_i;
48
- float percent = (s_i + offset - 0.5) / half_samples;
49
- float weight = 1.0 - abs(percent);
50
- vec4 sample_i = texture2D(inputBuffer, uv + normalize(direction) / resolution * percent * radius);
51
- /* switch to pre-multiplied alpha to correctly blur transparent images */
52
- sample_i.rgb *= sample_i.a;
53
- color += sample_i * weight;
54
- total += weight;
55
- }
56
- #pragma unroll_loop_end
57
-
58
- outputColor = color / total;
59
-
60
- /* switch back from pre-multiplied alpha */
61
- outputColor.rgb /= outputColor.a + 0.00001;
62
- }
63
- `
64
- };
65
- class TiltShiftEffect extends postprocessing.Effect {
66
- constructor({
67
- blendFunction = postprocessing.BlendFunction.NORMAL,
68
- blur = 0.15,
69
- // [0, 1], can go beyond 1 for extra
70
- taper = 0.5,
71
- // [0, 1], can go beyond 1 for extra
72
- start = [0.5, 0],
73
- // [0,1] percentage x,y of screenspace
74
- end = [0.5, 1],
75
- // [0,1] percentage x,y of screenspace
76
- samples = 10,
77
- // number of blur samples
78
- direction = [1, 1]
79
- // direction of blur
80
- } = {}) {
81
- super("TiltShiftEffect", TiltShiftShader.fragmentShader, {
82
- blendFunction,
83
- attributes: postprocessing.EffectAttribute.CONVOLUTION,
84
- uniforms: /* @__PURE__ */ new Map([
85
- ["blur", new THREE.Uniform(blur)],
86
- ["taper", new THREE.Uniform(taper)],
87
- ["start", new THREE.Uniform(start)],
88
- ["end", new THREE.Uniform(end)],
89
- ["samples", new THREE.Uniform(samples)],
90
- ["direction", new THREE.Uniform(direction)]
91
- ])
92
- });
93
- }
94
- }
95
- const TiltShift2 = util.wrapEffect(TiltShiftEffect, { blendFunction: postprocessing.BlendFunction.NORMAL });
96
- exports.TiltShift2 = TiltShift2;
97
- exports.TiltShiftEffect = TiltShiftEffect;
98
- //# sourceMappingURL=TiltShift2.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TiltShift2.cjs","sources":["../../src/effects/TiltShift2.tsx"],"sourcesContent":["import { Uniform } from 'three'\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing'\nimport { wrapEffect } from '../util'\n\nconst TiltShiftShader = {\n fragmentShader: `\n\n // original shader by Evan Wallace\n\n #define MAX_ITERATIONS 100\n\n uniform float blur;\n uniform float taper;\n uniform vec2 start;\n uniform vec2 end;\n uniform vec2 direction;\n uniform int samples;\n\n 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\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec4 color = vec4(0.0);\n float total = 0.0;\n vec2 startPixel = vec2(start.x * resolution.x, start.y * resolution.y);\n vec2 endPixel = vec2(end.x * resolution.x, end.y * resolution.y);\n float f_samples = float(samples);\n float half_samples = f_samples / 2.0;\n\n // use screen diagonal to normalize blur radii\n float maxScreenDistance = distance(vec2(0.0), resolution); // diagonal distance\n float gradientRadius = taper * (maxScreenDistance);\n float blurRadius = blur * (maxScreenDistance / 16.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 vec2 normal = normalize(vec2(startPixel.y - endPixel.y, endPixel.x - startPixel.x));\n float radius = smoothstep(0.0, 1.0, abs(dot(uv * resolution - startPixel, normal)) / gradientRadius) * blurRadius;\n\n #pragma unroll_loop_start\n for (int i = 0; i <= MAX_ITERATIONS; i++) {\n if (i >= samples) { break; } // return early if over sample count\n float f_i = float(i);\n float s_i = -half_samples + f_i;\n float percent = (s_i + offset - 0.5) / half_samples;\n float weight = 1.0 - abs(percent);\n vec4 sample_i = texture2D(inputBuffer, uv + normalize(direction) / resolution * percent * radius);\n /* switch to pre-multiplied alpha to correctly blur transparent images */\n sample_i.rgb *= sample_i.a;\n color += sample_i * weight;\n total += weight;\n }\n #pragma unroll_loop_end\n\n outputColor = color / total;\n\n /* switch back from pre-multiplied alpha */\n outputColor.rgb /= outputColor.a + 0.00001;\n }\n `,\n}\n\nexport class TiltShiftEffect extends Effect {\n constructor({\n blendFunction = BlendFunction.NORMAL,\n blur = 0.15, // [0, 1], can go beyond 1 for extra\n taper = 0.5, // [0, 1], can go beyond 1 for extra\n start = [0.5, 0.0], // [0,1] percentage x,y of screenspace\n end = [0.5, 1.0], // [0,1] percentage x,y of screenspace\n samples = 10.0, // number of blur samples\n direction = [1, 1], // direction of blur\n } = {}) {\n super('TiltShiftEffect', TiltShiftShader.fragmentShader, {\n blendFunction,\n attributes: EffectAttribute.CONVOLUTION,\n uniforms: new Map<string, Uniform<number | number[]>>([\n ['blur', new Uniform(blur)],\n ['taper', new Uniform(taper)],\n ['start', new Uniform(start)],\n ['end', new Uniform(end)],\n ['samples', new Uniform(samples)],\n ['direction', new Uniform(direction)],\n ]),\n })\n }\n}\n\nexport const TiltShift2 = wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.NORMAL })\n"],"names":["Effect","BlendFunction","EffectAttribute","Uniform","wrapEffect"],"mappings":";;;;;AAIA,MAAM,kBAAkB;AAAA,EACtB,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyDlB;AAEO,MAAM,wBAAwBA,eAAAA,OAAO;AAAA,EAC1C,YAAY;AAAA,IACV,gBAAgBC,eAAc,cAAA;AAAA,IAC9B,OAAO;AAAA;AAAA,IACP,QAAQ;AAAA;AAAA,IACR,QAAQ,CAAC,KAAK,CAAG;AAAA;AAAA,IACjB,MAAM,CAAC,KAAK,CAAG;AAAA;AAAA,IACf,UAAU;AAAA;AAAA,IACV,YAAY,CAAC,GAAG,CAAC;AAAA;AAAA,EACnB,IAAI,IAAI;AACA,UAAA,mBAAmB,gBAAgB,gBAAgB;AAAA,MACvD;AAAA,MACA,YAAYC,eAAgB,gBAAA;AAAA,MAC5B,8BAAc,IAAwC;AAAA,QACpD,CAAC,QAAQ,IAAIC,cAAQ,IAAI,CAAC;AAAA,QAC1B,CAAC,SAAS,IAAIA,cAAQ,KAAK,CAAC;AAAA,QAC5B,CAAC,SAAS,IAAIA,cAAQ,KAAK,CAAC;AAAA,QAC5B,CAAC,OAAO,IAAIA,cAAQ,GAAG,CAAC;AAAA,QACxB,CAAC,WAAW,IAAIA,cAAQ,OAAO,CAAC;AAAA,QAChC,CAAC,aAAa,IAAIA,cAAQ,SAAS,CAAC;AAAA,MAAA,CACrC;AAAA,IAAA,CACF;AAAA,EACH;AACF;AAEO,MAAM,aAAaC,KAAW,WAAA,iBAAiB,EAAE,eAAeH,eAAAA,cAAc,OAAQ,CAAA;;;"}
@@ -1,30 +0,0 @@
1
- /// <reference types="react" />
2
- import { BlendFunction, Effect } from 'postprocessing';
3
- export declare class TiltShiftEffect extends Effect {
4
- constructor({ blendFunction, blur, // [0, 1], can go beyond 1 for extra
5
- taper, // [0, 1], can go beyond 1 for extra
6
- start, // [0,1] percentage x,y of screenspace
7
- end, // [0,1] percentage x,y of screenspace
8
- samples, // number of blur samples
9
- direction, }?: {
10
- blendFunction?: BlendFunction | undefined;
11
- blur?: number | undefined;
12
- taper?: number | undefined;
13
- start?: number[] | undefined;
14
- end?: number[] | undefined;
15
- samples?: number | undefined;
16
- direction?: number[] | undefined;
17
- });
18
- }
19
- export declare const TiltShift2: import("react").ForwardRefExoticComponent<Omit<import("@react-three/fiber").ExtendedColors<import("@react-three/fiber").Overwrite<Partial<TiltShiftEffect>, import("@react-three/fiber").NodeProps<TiltShiftEffect, typeof TiltShiftEffect>>> & {
20
- blendFunction?: BlendFunction | undefined;
21
- blur?: number | undefined;
22
- taper?: number | undefined;
23
- start?: number[] | undefined;
24
- end?: number[] | undefined;
25
- samples?: number | undefined;
26
- direction?: number[] | undefined;
27
- } & {
28
- blendFunction?: BlendFunction | undefined;
29
- opacity?: number | undefined;
30
- }, "ref"> & import("react").RefAttributes<typeof TiltShiftEffect>>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"TiltShift2.js","sources":["../../src/effects/TiltShift2.tsx"],"sourcesContent":["import { Uniform } from 'three'\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing'\nimport { wrapEffect } from '../util'\n\nconst TiltShiftShader = {\n fragmentShader: `\n\n // original shader by Evan Wallace\n\n #define MAX_ITERATIONS 100\n\n uniform float blur;\n uniform float taper;\n uniform vec2 start;\n uniform vec2 end;\n uniform vec2 direction;\n uniform int samples;\n\n 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\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec4 color = vec4(0.0);\n float total = 0.0;\n vec2 startPixel = vec2(start.x * resolution.x, start.y * resolution.y);\n vec2 endPixel = vec2(end.x * resolution.x, end.y * resolution.y);\n float f_samples = float(samples);\n float half_samples = f_samples / 2.0;\n\n // use screen diagonal to normalize blur radii\n float maxScreenDistance = distance(vec2(0.0), resolution); // diagonal distance\n float gradientRadius = taper * (maxScreenDistance);\n float blurRadius = blur * (maxScreenDistance / 16.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 vec2 normal = normalize(vec2(startPixel.y - endPixel.y, endPixel.x - startPixel.x));\n float radius = smoothstep(0.0, 1.0, abs(dot(uv * resolution - startPixel, normal)) / gradientRadius) * blurRadius;\n\n #pragma unroll_loop_start\n for (int i = 0; i <= MAX_ITERATIONS; i++) {\n if (i >= samples) { break; } // return early if over sample count\n float f_i = float(i);\n float s_i = -half_samples + f_i;\n float percent = (s_i + offset - 0.5) / half_samples;\n float weight = 1.0 - abs(percent);\n vec4 sample_i = texture2D(inputBuffer, uv + normalize(direction) / resolution * percent * radius);\n /* switch to pre-multiplied alpha to correctly blur transparent images */\n sample_i.rgb *= sample_i.a;\n color += sample_i * weight;\n total += weight;\n }\n #pragma unroll_loop_end\n\n outputColor = color / total;\n\n /* switch back from pre-multiplied alpha */\n outputColor.rgb /= outputColor.a + 0.00001;\n }\n `,\n}\n\nexport class TiltShiftEffect extends Effect {\n constructor({\n blendFunction = BlendFunction.NORMAL,\n blur = 0.15, // [0, 1], can go beyond 1 for extra\n taper = 0.5, // [0, 1], can go beyond 1 for extra\n start = [0.5, 0.0], // [0,1] percentage x,y of screenspace\n end = [0.5, 1.0], // [0,1] percentage x,y of screenspace\n samples = 10.0, // number of blur samples\n direction = [1, 1], // direction of blur\n } = {}) {\n super('TiltShiftEffect', TiltShiftShader.fragmentShader, {\n blendFunction,\n attributes: EffectAttribute.CONVOLUTION,\n uniforms: new Map<string, Uniform<number | number[]>>([\n ['blur', new Uniform(blur)],\n ['taper', new Uniform(taper)],\n ['start', new Uniform(start)],\n ['end', new Uniform(end)],\n ['samples', new Uniform(samples)],\n ['direction', new Uniform(direction)],\n ]),\n })\n }\n}\n\nexport const TiltShift2 = wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.NORMAL })\n"],"names":[],"mappings":";;;AAIA,MAAM,kBAAkB;AAAA,EACtB,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyDlB;AAEO,MAAM,wBAAwB,OAAO;AAAA,EAC1C,YAAY;AAAA,IACV,gBAAgB,cAAc;AAAA,IAC9B,OAAO;AAAA;AAAA,IACP,QAAQ;AAAA;AAAA,IACR,QAAQ,CAAC,KAAK,CAAG;AAAA;AAAA,IACjB,MAAM,CAAC,KAAK,CAAG;AAAA;AAAA,IACf,UAAU;AAAA;AAAA,IACV,YAAY,CAAC,GAAG,CAAC;AAAA;AAAA,EACnB,IAAI,IAAI;AACA,UAAA,mBAAmB,gBAAgB,gBAAgB;AAAA,MACvD;AAAA,MACA,YAAY,gBAAgB;AAAA,MAC5B,8BAAc,IAAwC;AAAA,QACpD,CAAC,QAAQ,IAAI,QAAQ,IAAI,CAAC;AAAA,QAC1B,CAAC,SAAS,IAAI,QAAQ,KAAK,CAAC;AAAA,QAC5B,CAAC,SAAS,IAAI,QAAQ,KAAK,CAAC;AAAA,QAC5B,CAAC,OAAO,IAAI,QAAQ,GAAG,CAAC;AAAA,QACxB,CAAC,WAAW,IAAI,QAAQ,OAAO,CAAC;AAAA,QAChC,CAAC,aAAa,IAAI,QAAQ,SAAS,CAAC;AAAA,MAAA,CACrC;AAAA,IAAA,CACF;AAAA,EACH;AACF;AAEO,MAAM,aAAa,WAAW,iBAAiB,EAAE,eAAe,cAAc,OAAQ,CAAA;"}
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const postprocessing = require("postprocessing");
4
- const util = require("../util.cjs");
5
- const ToneMapping = util.wrapEffect(postprocessing.ToneMappingEffect);
6
- exports.ToneMapping = ToneMapping;
7
- //# sourceMappingURL=ToneMapping.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToneMapping.cjs","sources":["../../src/effects/ToneMapping.tsx"],"sourcesContent":["import { ToneMappingEffect } from 'postprocessing'\nimport { type EffectProps, wrapEffect } from '../util'\n\nexport type ToneMappingProps = EffectProps<typeof ToneMappingEffect>\n\nexport const ToneMapping = wrapEffect(ToneMappingEffect)\n"],"names":["wrapEffect","ToneMappingEffect"],"mappings":";;;;AAKa,MAAA,cAAcA,gBAAWC,eAAiB,iBAAA;;"}
@@ -1,19 +0,0 @@
1
- /// <reference types="react" />
2
- import { ToneMappingEffect } from 'postprocessing';
3
- import { type EffectProps } from '../util';
4
- export type ToneMappingProps = EffectProps<typeof ToneMappingEffect>;
5
- export declare const ToneMapping: import("react").ForwardRefExoticComponent<Omit<import("@react-three/fiber").ExtendedColors<import("@react-three/fiber").Overwrite<Partial<ToneMappingEffect>, import("@react-three/fiber").NodeProps<ToneMappingEffect, typeof ToneMappingEffect>>> & {
6
- blendFunction?: import("postprocessing").BlendFunction | undefined;
7
- adaptive?: boolean | undefined;
8
- mode?: import("postprocessing").ToneMappingMode | undefined;
9
- resolution?: number | undefined;
10
- maxLuminance?: number | undefined;
11
- whitePoint?: number | undefined;
12
- middleGrey?: number | undefined;
13
- minLuminance?: number | undefined;
14
- averageLuminance?: number | undefined;
15
- adaptationRate?: number | undefined;
16
- } & {
17
- blendFunction?: import("postprocessing").BlendFunction | undefined;
18
- opacity?: number | undefined;
19
- }, "ref"> & import("react").RefAttributes<typeof ToneMappingEffect>>;
@@ -1,7 +0,0 @@
1
- import { ToneMappingEffect } from "postprocessing";
2
- import { wrapEffect } from "../util.js";
3
- const ToneMapping = wrapEffect(ToneMappingEffect);
4
- export {
5
- ToneMapping
6
- };
7
- //# sourceMappingURL=ToneMapping.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToneMapping.js","sources":["../../src/effects/ToneMapping.tsx"],"sourcesContent":["import { ToneMappingEffect } from 'postprocessing'\nimport { type EffectProps, wrapEffect } from '../util'\n\nexport type ToneMappingProps = EffectProps<typeof ToneMappingEffect>\n\nexport const ToneMapping = wrapEffect(ToneMappingEffect)\n"],"names":[],"mappings":";;AAKa,MAAA,cAAc,WAAW,iBAAiB;"}
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const postprocessing = require("postprocessing");
4
- const util = require("../util.cjs");
5
- const Vignette = util.wrapEffect(postprocessing.VignetteEffect);
6
- exports.Vignette = Vignette;
7
- //# sourceMappingURL=Vignette.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Vignette.cjs","sources":["../../src/effects/Vignette.tsx"],"sourcesContent":["import { VignetteEffect } from 'postprocessing'\nimport { wrapEffect } from '../util'\n\nexport const Vignette = wrapEffect(VignetteEffect)\n"],"names":["wrapEffect","VignetteEffect"],"mappings":";;;;AAGa,MAAA,WAAWA,gBAAWC,eAAc,cAAA;;"}
@@ -1,12 +0,0 @@
1
- /// <reference types="react" />
2
- import { VignetteEffect } from 'postprocessing';
3
- export declare const Vignette: import("react").ForwardRefExoticComponent<Omit<import("@react-three/fiber").ExtendedColors<import("@react-three/fiber").Overwrite<Partial<VignetteEffect>, import("@react-three/fiber").NodeProps<VignetteEffect, typeof VignetteEffect>>> & {
4
- blendFunction?: import("postprocessing").BlendFunction | undefined;
5
- technique?: import("postprocessing").VignetteTechnique | undefined;
6
- eskil?: boolean | undefined;
7
- offset?: number | undefined;
8
- darkness?: number | undefined;
9
- } & {
10
- blendFunction?: import("postprocessing").BlendFunction | undefined;
11
- opacity?: number | undefined;
12
- }, "ref"> & import("react").RefAttributes<typeof VignetteEffect>>;
@@ -1,7 +0,0 @@
1
- import { VignetteEffect } from "postprocessing";
2
- import { wrapEffect } from "../util.js";
3
- const Vignette = wrapEffect(VignetteEffect);
4
- export {
5
- Vignette
6
- };
7
- //# sourceMappingURL=Vignette.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Vignette.js","sources":["../../src/effects/Vignette.tsx"],"sourcesContent":["import { VignetteEffect } from 'postprocessing'\nimport { wrapEffect } from '../util'\n\nexport const Vignette = wrapEffect(VignetteEffect)\n"],"names":[],"mappings":";;AAGa,MAAA,WAAW,WAAW,cAAc;"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const THREE = require("three");
4
- const postprocessing = require("postprocessing");
5
- const util = require("../util.cjs");
6
- const WaterShader = {
7
- fragmentShader: (
8
- /* glsl */
9
- `
10
- uniform float factor;
11
-
12
- void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {
13
- vec2 vUv = uv;
14
- float frequency = 6.0 * factor;
15
- float amplitude = 0.015 * factor;
16
- float x = vUv.y * frequency + time * 0.7;
17
- float y = vUv.x * frequency + time * 0.3;
18
- vUv.x += cos(x + y) * amplitude * cos(y);
19
- vUv.y += sin(x - y) * amplitude * cos(y);
20
- vec4 rgba = texture(inputBuffer, vUv);
21
- outputColor = rgba;
22
- }
23
- `
24
- )
25
- };
26
- class WaterEffectImpl extends postprocessing.Effect {
27
- constructor({ blendFunction = postprocessing.BlendFunction.NORMAL, factor = 0 } = {}) {
28
- super("WaterEffect", WaterShader.fragmentShader, {
29
- blendFunction,
30
- attributes: postprocessing.EffectAttribute.CONVOLUTION,
31
- uniforms: /* @__PURE__ */ new Map([["factor", new THREE.Uniform(factor)]])
32
- });
33
- }
34
- }
35
- const WaterEffect = util.wrapEffect(WaterEffectImpl, { blendFunction: postprocessing.BlendFunction.NORMAL });
36
- exports.WaterEffect = WaterEffect;
37
- exports.WaterEffectImpl = WaterEffectImpl;
38
- //# sourceMappingURL=Water.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Water.cjs","sources":["../../src/effects/Water.tsx"],"sourcesContent":["import { Uniform } from 'three'\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing'\nimport { wrapEffect } from '../util'\n\nconst WaterShader = {\n fragmentShader: /* glsl */ `\n uniform float factor;\n\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 vUv = uv;\n float frequency = 6.0 * factor;\n float amplitude = 0.015 * factor;\n float x = vUv.y * frequency + time * 0.7; \n float y = vUv.x * frequency + time * 0.3;\n vUv.x += cos(x + y) * amplitude * cos(y);\n vUv.y += sin(x - y) * amplitude * cos(y);\n vec4 rgba = texture(inputBuffer, vUv);\n outputColor = rgba;\n }\n `,\n}\n\nexport class WaterEffectImpl extends Effect {\n constructor({ blendFunction = BlendFunction.NORMAL, factor = 0 } = {}) {\n super('WaterEffect', WaterShader.fragmentShader, {\n blendFunction,\n attributes: EffectAttribute.CONVOLUTION,\n uniforms: new Map<string, Uniform<number | number[]>>([['factor', new Uniform(factor)]]),\n })\n }\n}\n\nexport const WaterEffect = wrapEffect(WaterEffectImpl, { blendFunction: BlendFunction.NORMAL })\n"],"names":["Effect","BlendFunction","EffectAttribute","Uniform","wrapEffect"],"mappings":";;;;;AAIA,MAAM,cAAc;AAAA,EAClB;AAAA;AAAA,IAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAe7B;AAEO,MAAM,wBAAwBA,eAAAA,OAAO;AAAA,EAC1C,YAAY,EAAE,gBAAgBC,eAAA,cAAc,QAAQ,SAAS,EAAM,IAAA,IAAI;AAC/D,UAAA,eAAe,YAAY,gBAAgB;AAAA,MAC/C;AAAA,MACA,YAAYC,eAAgB,gBAAA;AAAA,MAC5B,UAAc,oBAAA,IAAwC,CAAC,CAAC,UAAU,IAAIC,cAAQ,MAAM,CAAC,CAAC,CAAC;AAAA,IAAA,CACxF;AAAA,EACH;AACF;AAEO,MAAM,cAAcC,KAAW,WAAA,iBAAiB,EAAE,eAAeH,eAAAA,cAAc,OAAQ,CAAA;;;"}
@@ -1,15 +0,0 @@
1
- /// <reference types="react" />
2
- import { BlendFunction, Effect } from 'postprocessing';
3
- export declare class WaterEffectImpl extends Effect {
4
- constructor({ blendFunction, factor }?: {
5
- blendFunction?: BlendFunction | undefined;
6
- factor?: number | undefined;
7
- });
8
- }
9
- export declare const WaterEffect: import("react").ForwardRefExoticComponent<Omit<import("@react-three/fiber").ExtendedColors<import("@react-three/fiber").Overwrite<Partial<WaterEffectImpl>, import("@react-three/fiber").NodeProps<WaterEffectImpl, typeof WaterEffectImpl>>> & {
10
- blendFunction?: BlendFunction | undefined;
11
- factor?: number | undefined;
12
- } & {
13
- blendFunction?: BlendFunction | undefined;
14
- opacity?: number | undefined;
15
- }, "ref"> & import("react").RefAttributes<typeof WaterEffectImpl>>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"Water.js","sources":["../../src/effects/Water.tsx"],"sourcesContent":["import { Uniform } from 'three'\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing'\nimport { wrapEffect } from '../util'\n\nconst WaterShader = {\n fragmentShader: /* glsl */ `\n uniform float factor;\n\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 vUv = uv;\n float frequency = 6.0 * factor;\n float amplitude = 0.015 * factor;\n float x = vUv.y * frequency + time * 0.7; \n float y = vUv.x * frequency + time * 0.3;\n vUv.x += cos(x + y) * amplitude * cos(y);\n vUv.y += sin(x - y) * amplitude * cos(y);\n vec4 rgba = texture(inputBuffer, vUv);\n outputColor = rgba;\n }\n `,\n}\n\nexport class WaterEffectImpl extends Effect {\n constructor({ blendFunction = BlendFunction.NORMAL, factor = 0 } = {}) {\n super('WaterEffect', WaterShader.fragmentShader, {\n blendFunction,\n attributes: EffectAttribute.CONVOLUTION,\n uniforms: new Map<string, Uniform<number | number[]>>([['factor', new Uniform(factor)]]),\n })\n }\n}\n\nexport const WaterEffect = wrapEffect(WaterEffectImpl, { blendFunction: BlendFunction.NORMAL })\n"],"names":[],"mappings":";;;AAIA,MAAM,cAAc;AAAA,EAClB;AAAA;AAAA,IAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAe7B;AAEO,MAAM,wBAAwB,OAAO;AAAA,EAC1C,YAAY,EAAE,gBAAgB,cAAc,QAAQ,SAAS,EAAM,IAAA,IAAI;AAC/D,UAAA,eAAe,YAAY,gBAAgB;AAAA,MAC/C;AAAA,MACA,YAAY,gBAAgB;AAAA,MAC5B,UAAc,oBAAA,IAAwC,CAAC,CAAC,UAAU,IAAI,QAAQ,MAAM,CAAC,CAAC,CAAC;AAAA,IAAA,CACxF;AAAA,EACH;AACF;AAEO,MAAM,cAAc,WAAW,iBAAiB,EAAE,eAAe,cAAc,OAAQ,CAAA;"}
package/dist/index.cjs DELETED
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Selection = require("./Selection.cjs");
4
- const EffectComposer = require("./EffectComposer.cjs");
5
- const util = require("./util.cjs");
6
- const Autofocus = require("./effects/Autofocus.cjs");
7
- const LensFlare = require("./effects/LensFlare.cjs");
8
- const Bloom = require("./effects/Bloom.cjs");
9
- const BrightnessContrast = require("./effects/BrightnessContrast.cjs");
10
- const ChromaticAberration = require("./effects/ChromaticAberration.cjs");
11
- const ColorAverage = require("./effects/ColorAverage.cjs");
12
- const ColorDepth = require("./effects/ColorDepth.cjs");
13
- const Depth = require("./effects/Depth.cjs");
14
- const DepthOfField = require("./effects/DepthOfField.cjs");
15
- const DotScreen = require("./effects/DotScreen.cjs");
16
- const Glitch = require("./effects/Glitch.cjs");
17
- const GodRays = require("./effects/GodRays.cjs");
18
- const Grid = require("./effects/Grid.cjs");
19
- const HueSaturation = require("./effects/HueSaturation.cjs");
20
- const Noise = require("./effects/Noise.cjs");
21
- const Outline = require("./effects/Outline.cjs");
22
- const Pixelation = require("./effects/Pixelation.cjs");
23
- const ScanlineEffect = require("./effects/ScanlineEffect.cjs");
24
- const SelectiveBloom = require("./effects/SelectiveBloom.cjs");
25
- const Sepia = require("./effects/Sepia.cjs");
26
- const SSAO = require("./effects/SSAO.cjs");
27
- const SMAA = require("./effects/SMAA.cjs");
28
- const FXAA = require("./effects/FXAA.cjs");
29
- const Ramp = require("./effects/Ramp.cjs");
30
- const Texture = require("./effects/Texture.cjs");
31
- const ToneMapping = require("./effects/ToneMapping.cjs");
32
- const Vignette = require("./effects/Vignette.cjs");
33
- const ShockWave = require("./effects/ShockWave.cjs");
34
- const LUT = require("./effects/LUT.cjs");
35
- const TiltShift = require("./effects/TiltShift.cjs");
36
- const TiltShift2 = require("./effects/TiltShift2.cjs");
37
- const ASCII = require("./effects/ASCII.cjs");
38
- const Water = require("./effects/Water.cjs");
39
- const index = require("./effects/SSR/index.cjs");
40
- const index$1 = require("./effects/N8AO/index.cjs");
41
- exports.Select = Selection.Select;
42
- exports.Selection = Selection.Selection;
43
- exports.selectionContext = Selection.selectionContext;
44
- exports.EffectComposer = EffectComposer.EffectComposer;
45
- exports.EffectComposerContext = EffectComposer.EffectComposerContext;
46
- exports.resolveRef = util.resolveRef;
47
- exports.useVector2 = util.useVector2;
48
- exports.wrapEffect = util.wrapEffect;
49
- exports.Autofocus = Autofocus.Autofocus;
50
- exports.LensFlare = LensFlare.LensFlare;
51
- exports.LensFlareEffect = LensFlare.LensFlareEffect;
52
- exports.Bloom = Bloom.Bloom;
53
- exports.BrightnessContrast = BrightnessContrast.BrightnessContrast;
54
- exports.ChromaticAberration = ChromaticAberration.ChromaticAberration;
55
- exports.ColorAverage = ColorAverage.ColorAverage;
56
- exports.ColorDepth = ColorDepth.ColorDepth;
57
- exports.Depth = Depth.Depth;
58
- exports.DepthOfField = DepthOfField.DepthOfField;
59
- exports.DotScreen = DotScreen.DotScreen;
60
- exports.Glitch = Glitch.Glitch;
61
- exports.GodRays = GodRays.GodRays;
62
- exports.Grid = Grid.Grid;
63
- exports.HueSaturation = HueSaturation.HueSaturation;
64
- exports.Noise = Noise.Noise;
65
- exports.Outline = Outline.Outline;
66
- exports.Pixelation = Pixelation.Pixelation;
67
- exports.Scanline = ScanlineEffect.Scanline;
68
- exports.SelectiveBloom = SelectiveBloom.SelectiveBloom;
69
- exports.Sepia = Sepia.Sepia;
70
- exports.SSAO = SSAO.SSAO;
71
- exports.SMAA = SMAA.SMAA;
72
- exports.FXAA = FXAA.FXAA;
73
- exports.Ramp = Ramp.Ramp;
74
- exports.RampEffect = Ramp.RampEffect;
75
- exports.RampType = Ramp.RampType;
76
- exports.Texture = Texture.Texture;
77
- exports.ToneMapping = ToneMapping.ToneMapping;
78
- exports.Vignette = Vignette.Vignette;
79
- exports.ShockWave = ShockWave.ShockWave;
80
- exports.LUT = LUT.LUT;
81
- exports.TiltShift = TiltShift.TiltShift;
82
- exports.TiltShift2 = TiltShift2.TiltShift2;
83
- exports.TiltShiftEffect = TiltShift2.TiltShiftEffect;
84
- exports.ASCII = ASCII.ASCII;
85
- exports.WaterEffect = Water.WaterEffect;
86
- exports.WaterEffectImpl = Water.WaterEffectImpl;
87
- exports.SSR = index.SSR;
88
- exports.N8AO = index$1.N8AO;
89
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/util.cjs DELETED
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const React = require("react");
5
- const THREE = require("three");
6
- const fiber = require("@react-three/fiber");
7
- function _interopNamespaceDefault(e) {
8
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
9
- if (e) {
10
- for (const k in e) {
11
- if (k !== "default") {
12
- const d = Object.getOwnPropertyDescriptor(e, k);
13
- Object.defineProperty(n, k, d.get ? d : {
14
- enumerable: true,
15
- get: () => e[k]
16
- });
17
- }
18
- }
19
- }
20
- n.default = e;
21
- return Object.freeze(n);
22
- }
23
- const THREE__namespace = /* @__PURE__ */ _interopNamespaceDefault(THREE);
24
- const resolveRef = (ref) => typeof ref === "object" && ref != null && "current" in ref ? ref.current : ref;
25
- let i = 0;
26
- const components = /* @__PURE__ */ new WeakMap();
27
- const wrapEffect = (effect, defaults) => /* @__PURE__ */ React.forwardRef(function Effect({ blendFunction = defaults == null ? void 0 : defaults.blendFunction, opacity = defaults == null ? void 0 : defaults.opacity, ...props }, ref) {
28
- let Component = components.get(effect);
29
- if (!Component) {
30
- const key = `@react-three/postprocessing/${effect.name}-${i++}`;
31
- fiber.extend({ [key]: effect });
32
- components.set(effect, Component = key);
33
- }
34
- const camera = fiber.useThree((state) => state.camera);
35
- const args = React.useMemo(
36
- () => {
37
- var _a, _b;
38
- return [...(_a = defaults == null ? void 0 : defaults.args) != null ? _a : [], ...(_b = props.args) != null ? _b : [{ ...defaults, ...props }]];
39
- },
40
- // eslint-disable-next-line react-hooks/exhaustive-deps
41
- [JSON.stringify(props)]
42
- );
43
- return /* @__PURE__ */ jsxRuntime.jsx(
44
- Component,
45
- {
46
- camera,
47
- "blendMode-blendFunction": blendFunction,
48
- "blendMode-opacity-value": opacity,
49
- ...props,
50
- ref,
51
- args
52
- }
53
- );
54
- });
55
- const useVector2 = (props, key) => {
56
- const value = props[key];
57
- return React.useMemo(() => {
58
- if (typeof value === "number")
59
- return new THREE__namespace.Vector2(value, value);
60
- else if (value)
61
- return new THREE__namespace.Vector2(...value);
62
- else
63
- return new THREE__namespace.Vector2();
64
- }, [value]);
65
- };
66
- exports.resolveRef = resolveRef;
67
- exports.useVector2 = useVector2;
68
- exports.wrapEffect = wrapEffect;
69
- //# sourceMappingURL=util.cjs.map
package/dist/util.cjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.cjs","sources":["../src/util.tsx"],"sourcesContent":["import React, { MutableRefObject } from 'react'\nimport { Vector2 } from 'three'\nimport * as THREE from 'three'\nimport { type ReactThreeFiber, extend, useThree } from '@react-three/fiber'\nimport type { Effect, BlendFunction } from 'postprocessing'\n\nexport const resolveRef = <T,>(ref: T | React.MutableRefObject<T>) =>\n typeof ref === 'object' && ref != null && 'current' in ref ? ref.current : ref\n\nexport type EffectConstructor = new (...args: any[]) => Effect\n\nexport type EffectProps<T extends EffectConstructor> = ReactThreeFiber.Node<\n T extends Function ? T['prototype'] : InstanceType<T>,\n T\n> &\n ConstructorParameters<T>[0] & {\n blendFunction?: BlendFunction\n opacity?: number\n }\n\nlet i = 0\nconst components = new WeakMap<EffectConstructor, React.ExoticComponent<any> | string>()\n\nexport const wrapEffect = <T extends EffectConstructor>(effect: T, defaults?: EffectProps<T>) =>\n /* @__PURE__ */ React.forwardRef<T, EffectProps<T>>(function Effect(\n { blendFunction = defaults?.blendFunction, opacity = defaults?.opacity, ...props },\n ref\n ) {\n let Component = components.get(effect)\n if (!Component) {\n const key = `@react-three/postprocessing/${effect.name}-${i++}`\n extend({ [key]: effect })\n components.set(effect, (Component = key))\n }\n\n const camera = useThree((state) => state.camera)\n const args = React.useMemo(\n () => [...((defaults?.args ?? []) as any[]), ...((props.args ?? [{ ...defaults, ...props }]) as any[])],\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(props)]\n )\n\n return (\n <Component\n camera={camera}\n blendMode-blendFunction={blendFunction}\n blendMode-opacity-value={opacity}\n {...props}\n ref={ref}\n args={args}\n />\n )\n })\n\nexport const useVector2 = (props: Record<string, unknown>, key: string): THREE.Vector2 => {\n const value = props[key] as ReactThreeFiber.Vector2 | undefined\n return React.useMemo(() => {\n if (typeof value === 'number') return new THREE.Vector2(value, value)\n else if (value) return new THREE.Vector2(...(value as THREE.Vector2Tuple))\n else return new THREE.Vector2()\n }, [value])\n}\n"],"names":["extend","useThree","jsx","THREE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAMa,MAAA,aAAa,CAAK,QAC7B,OAAO,QAAQ,YAAY,OAAO,QAAQ,aAAa,MAAM,IAAI,UAAU;AAa7E,IAAI,IAAI;AACR,MAAM,iCAAiB;AAEhB,MAAM,aAAa,CAA8B,QAAW,aAC3C,sBAAA,WAA8B,SAAS,OAC3D,EAAE,gBAAgB,qCAAU,eAAe,UAAU,qCAAU,SAAS,GAAG,SAC3E,KACA;AACI,MAAA,YAAY,WAAW,IAAI,MAAM;AACrC,MAAI,CAAC,WAAW;AACR,UAAA,MAAM,+BAA+B,OAAO,QAAQ;AAC1DA,UAAAA,OAAO,EAAE,CAAC,GAAG,GAAG,OAAQ,CAAA;AACb,eAAA,IAAI,QAAS,YAAY,GAAI;AAAA,EAC1C;AAEA,QAAM,SAASC,MAAAA,SAAS,CAAC,UAAU,MAAM,MAAM;AAC/C,QAAM,OAAO,MAAM;AAAA,IACjB,MAAA;;AAAM,cAAC,IAAK,0CAAU,SAAV,YAAkB,CAAe,GAAA,IAAK,WAAM,SAAN,YAAc,CAAC,EAAE,GAAG,UAAU,GAAG,MAAO,CAAA,CAAY;AAAA;AAAA;AAAA,IAEtG,CAAC,KAAK,UAAU,KAAK,CAAC;AAAA,EAAA;AAItB,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,2BAAyB;AAAA,MACzB,2BAAyB;AAAA,MACxB,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;AAEU,MAAA,aAAa,CAAC,OAAgC,QAA+B;AAClF,QAAA,QAAQ,MAAM,GAAG;AAChB,SAAA,MAAM,QAAQ,MAAM;AACzB,QAAI,OAAO,UAAU;AAAU,aAAO,IAAIC,iBAAM,QAAQ,OAAO,KAAK;AAAA,aAC3D;AAAO,aAAO,IAAIA,iBAAM,QAAQ,GAAI,KAA4B;AAAA;AAC7D,aAAA,IAAIA,iBAAM;EAAQ,GAC7B,CAAC,KAAK,CAAC;AACZ;;;;"}
package/dist/util.d.ts DELETED
@@ -1,13 +0,0 @@
1
- import React, { MutableRefObject } from 'react';
2
- import { Vector2 } from 'three';
3
- import * as THREE from 'three';
4
- import { type ReactThreeFiber } from '@react-three/fiber';
5
- import type { Effect, BlendFunction } from 'postprocessing';
6
- export declare const resolveRef: <T>(ref: T | React.MutableRefObject<T>) => T;
7
- export type EffectConstructor = new (...args: any[]) => Effect;
8
- export type EffectProps<T extends EffectConstructor> = ReactThreeFiber.Node<T extends Function ? T['prototype'] : InstanceType<T>, T> & ConstructorParameters<T>[0] & {
9
- blendFunction?: BlendFunction;
10
- opacity?: number;
11
- };
12
- export declare const wrapEffect: <T extends EffectConstructor>(effect: T, defaults?: EffectProps<T> | undefined) => React.ForwardRefExoticComponent<React.PropsWithoutRef<EffectProps<T>> & React.RefAttributes<T>>;
13
- export declare const useVector2: (props: Record<string, unknown>, key: string) => THREE.Vector2;
package/dist/util.js DELETED
@@ -1,52 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import React from "react";
3
- import * as THREE from "three";
4
- import { extend, useThree } from "@react-three/fiber";
5
- const resolveRef = (ref) => typeof ref === "object" && ref != null && "current" in ref ? ref.current : ref;
6
- let i = 0;
7
- const components = /* @__PURE__ */ new WeakMap();
8
- const wrapEffect = (effect, defaults) => /* @__PURE__ */ React.forwardRef(function Effect({ blendFunction = defaults == null ? void 0 : defaults.blendFunction, opacity = defaults == null ? void 0 : defaults.opacity, ...props }, ref) {
9
- let Component = components.get(effect);
10
- if (!Component) {
11
- const key = `@react-three/postprocessing/${effect.name}-${i++}`;
12
- extend({ [key]: effect });
13
- components.set(effect, Component = key);
14
- }
15
- const camera = useThree((state) => state.camera);
16
- const args = React.useMemo(
17
- () => {
18
- var _a, _b;
19
- return [...(_a = defaults == null ? void 0 : defaults.args) != null ? _a : [], ...(_b = props.args) != null ? _b : [{ ...defaults, ...props }]];
20
- },
21
- // eslint-disable-next-line react-hooks/exhaustive-deps
22
- [JSON.stringify(props)]
23
- );
24
- return /* @__PURE__ */ jsx(
25
- Component,
26
- {
27
- camera,
28
- "blendMode-blendFunction": blendFunction,
29
- "blendMode-opacity-value": opacity,
30
- ...props,
31
- ref,
32
- args
33
- }
34
- );
35
- });
36
- const useVector2 = (props, key) => {
37
- const value = props[key];
38
- return React.useMemo(() => {
39
- if (typeof value === "number")
40
- return new THREE.Vector2(value, value);
41
- else if (value)
42
- return new THREE.Vector2(...value);
43
- else
44
- return new THREE.Vector2();
45
- }, [value]);
46
- };
47
- export {
48
- resolveRef,
49
- useVector2,
50
- wrapEffect
51
- };
52
- //# sourceMappingURL=util.js.map
package/dist/util.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sources":["../src/util.tsx"],"sourcesContent":["import React, { MutableRefObject } from 'react'\nimport { Vector2 } from 'three'\nimport * as THREE from 'three'\nimport { type ReactThreeFiber, extend, useThree } from '@react-three/fiber'\nimport type { Effect, BlendFunction } from 'postprocessing'\n\nexport const resolveRef = <T,>(ref: T | React.MutableRefObject<T>) =>\n typeof ref === 'object' && ref != null && 'current' in ref ? ref.current : ref\n\nexport type EffectConstructor = new (...args: any[]) => Effect\n\nexport type EffectProps<T extends EffectConstructor> = ReactThreeFiber.Node<\n T extends Function ? T['prototype'] : InstanceType<T>,\n T\n> &\n ConstructorParameters<T>[0] & {\n blendFunction?: BlendFunction\n opacity?: number\n }\n\nlet i = 0\nconst components = new WeakMap<EffectConstructor, React.ExoticComponent<any> | string>()\n\nexport const wrapEffect = <T extends EffectConstructor>(effect: T, defaults?: EffectProps<T>) =>\n /* @__PURE__ */ React.forwardRef<T, EffectProps<T>>(function Effect(\n { blendFunction = defaults?.blendFunction, opacity = defaults?.opacity, ...props },\n ref\n ) {\n let Component = components.get(effect)\n if (!Component) {\n const key = `@react-three/postprocessing/${effect.name}-${i++}`\n extend({ [key]: effect })\n components.set(effect, (Component = key))\n }\n\n const camera = useThree((state) => state.camera)\n const args = React.useMemo(\n () => [...((defaults?.args ?? []) as any[]), ...((props.args ?? [{ ...defaults, ...props }]) as any[])],\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(props)]\n )\n\n return (\n <Component\n camera={camera}\n blendMode-blendFunction={blendFunction}\n blendMode-opacity-value={opacity}\n {...props}\n ref={ref}\n args={args}\n />\n )\n })\n\nexport const useVector2 = (props: Record<string, unknown>, key: string): THREE.Vector2 => {\n const value = props[key] as ReactThreeFiber.Vector2 | undefined\n return React.useMemo(() => {\n if (typeof value === 'number') return new THREE.Vector2(value, value)\n else if (value) return new THREE.Vector2(...(value as THREE.Vector2Tuple))\n else return new THREE.Vector2()\n }, [value])\n}\n"],"names":[],"mappings":";;;;AAMa,MAAA,aAAa,CAAK,QAC7B,OAAO,QAAQ,YAAY,OAAO,QAAQ,aAAa,MAAM,IAAI,UAAU;AAa7E,IAAI,IAAI;AACR,MAAM,iCAAiB;AAEhB,MAAM,aAAa,CAA8B,QAAW,aAC3C,sBAAA,WAA8B,SAAS,OAC3D,EAAE,gBAAgB,qCAAU,eAAe,UAAU,qCAAU,SAAS,GAAG,SAC3E,KACA;AACI,MAAA,YAAY,WAAW,IAAI,MAAM;AACrC,MAAI,CAAC,WAAW;AACR,UAAA,MAAM,+BAA+B,OAAO,QAAQ;AAC1D,WAAO,EAAE,CAAC,GAAG,GAAG,OAAQ,CAAA;AACb,eAAA,IAAI,QAAS,YAAY,GAAI;AAAA,EAC1C;AAEA,QAAM,SAAS,SAAS,CAAC,UAAU,MAAM,MAAM;AAC/C,QAAM,OAAO,MAAM;AAAA,IACjB,MAAA;;AAAM,cAAC,IAAK,0CAAU,SAAV,YAAkB,CAAe,GAAA,IAAK,WAAM,SAAN,YAAc,CAAC,EAAE,GAAG,UAAU,GAAG,MAAO,CAAA,CAAY;AAAA;AAAA;AAAA,IAEtG,CAAC,KAAK,UAAU,KAAK,CAAC;AAAA,EAAA;AAItB,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,2BAAyB;AAAA,MACzB,2BAAyB;AAAA,MACxB,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;AAEU,MAAA,aAAa,CAAC,OAAgC,QAA+B;AAClF,QAAA,QAAQ,MAAM,GAAG;AAChB,SAAA,MAAM,QAAQ,MAAM;AACzB,QAAI,OAAO,UAAU;AAAU,aAAO,IAAI,MAAM,QAAQ,OAAO,KAAK;AAAA,aAC3D;AAAO,aAAO,IAAI,MAAM,QAAQ,GAAI,KAA4B;AAAA;AAC7D,aAAA,IAAI,MAAM;EAAQ,GAC7B,CAAC,KAAK,CAAC;AACZ;"}