@react-three/postprocessing 2.4.4 → 2.5.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.
@@ -1,7 +1,6 @@
1
- import * as THREE from 'three';
1
+ import { TextureDataType } from 'three';
2
2
  import React from 'react';
3
3
  import { EffectComposer as EffectComposerImpl, NormalPass, DepthDownsamplingPass } from 'postprocessing';
4
- import { TextureDataType } from 'three';
5
4
  export declare const EffectComposerContext: React.Context<{
6
5
  composer: EffectComposerImpl;
7
6
  normalPass: NormalPass | null;
@@ -1,47 +1,55 @@
1
1
  import React from 'react';
2
2
  declare type SSRProps = {
3
- /** Enables the effect pass */
4
- enabled?: boolean;
5
- /** Size of the blur buffer */
6
- blurSize?: number;
7
- /** Whether to blur the reflections and blend these blurred reflections depending on the roughness and depth of the reflection ray */
8
- useBlur?: boolean;
9
- /** The kernel size of the blur pass which is used to blur reflections; higher kernel sizes will result in blurrier reflections with more artifacts */
3
+ /** whether you want to use Temporal Resolving to re-use reflections from the last frames; this will reduce noise tremendously but may result in "smearing" */
4
+ temporalResolve?: boolean;
5
+ /** a value between 0 and 1 to set how much the last frame's reflections should be blended in; higher values will result in less noisy reflections when moving the camera but a more smeary look */
6
+ temporalResolveMix?: number;
7
+ /** a value between 0 and 1 to set how much the reprojected reflection should be corrected; higher values will reduce smearing but will result in less flickering at reflection edges */
8
+ temporalResolveCorrectionMix?: number;
9
+ /** the maximum number of samples for reflections; settings it to 0 means unlimited samples; setting it to a value like 6 can help make camera movements less disruptive when calculating reflections */
10
+ maxSamples?: number;
11
+ /** whether to blur the reflections and blend these blurred reflections with the raw ones depending on the blurMix value */
12
+ ENABLE_BLUR?: boolean;
13
+ /** how much the blurred reflections should be mixed with the raw reflections */
14
+ blurMix?: number;
15
+ /** the sharpness of the Bilateral Filter used to blur reflections */
16
+ blurSharpness?: number;
17
+ /** the kernel size of the Bilateral Blur Filter; higher kernel sizes will result in blurrier reflections with more artifacts */
10
18
  blurKernelSize?: number;
11
- /** How much the reflection ray should travel in each of its iteration; higher values will give deeper reflections but with more artifacts */
19
+ /** how much the reflection ray should travel in each of its iteration; higher values will give deeper reflections but with more artifacts */
12
20
  rayStep?: number;
13
- /** The intensity of the reflections */
21
+ /** the intensity of the reflections */
14
22
  intensity?: number;
15
- /** The power by which the reflections should be potentiated; higher values will give a more intense and vibrant look */
16
- power?: number;
17
- /** How much deep reflections will be blurred (as reflections become blurrier the further away the object they are reflecting is) */
18
- depthBlur?: number;
19
- /** Whether jittering is enabled; jittering will randomly jitter the reflections resulting in a more noisy but overall more realistic look, enabling jittering can be expensive depending on the view angle */
20
- enableJittering?: boolean;
21
- /** How intense jittering should be */
23
+ /** the maximum roughness a texel can have to have reflections calculated for it */
24
+ maxRoughness?: number;
25
+ /** whether jittering is enabled; jittering will randomly jitter the reflections resulting in a more noisy but overall more realistic look, enabling jittering can be expensive depending on the view angle */
26
+ ENABLE_JITTERING?: boolean;
27
+ /** how intense jittering should be */
22
28
  jitter?: number;
23
- /** How much the jittered rays should be spread; higher values will give a rougher look regarding the reflections but are more expensive to compute with */
29
+ /** how much the jittered rays should be spread; higher values will give a rougher look regarding the reflections but are more expensive to compute with */
24
30
  jitterSpread?: number;
25
- /** Roughness fade out */
26
- roughnessFadeOut?: number;
27
- /** The number of steps a reflection ray can maximally do to find an object it intersected (and thus reflects) */
31
+ /** how intense jittering should be in relation to a material's roughness */
32
+ jitterRough?: number;
33
+ /** the number of steps a reflection ray can maximally do to find an object it intersected (and thus reflects) */
28
34
  MAX_STEPS?: number;
29
- /** Once we had our ray intersect something, we need to find the exact point in space it intersected and thus it reflects; this can be done through binary search with the given number of maximum steps */
35
+ /** once we had our ray intersect something, we need to find the exact point in space it intersected and thus it reflects; this can be done through binary search with the given number of maximum steps */
30
36
  NUM_BINARY_SEARCH_STEPS?: number;
31
- /** The maximum depth difference between a ray and the particular depth at its screen position after refining with binary search; lower values will result in better performance */
37
+ /** the maximum depth difference between a ray and the particular depth at its screen position after refining with binary search; lower values will result in better performance */
32
38
  maxDepthDifference?: number;
33
- /** The maximum depth for which reflections will be calculated */
39
+ /** the maximum depth for which reflections will be calculated */
34
40
  maxDepth?: number;
35
- /** The maximum depth difference between a ray and the particular depth at its screen position before refining with binary search; lower values will result in better performance */
41
+ /** the maximum depth difference between a ray and the particular depth at its screen position before refining with binary search; lower values will result in better performance */
36
42
  thickness?: number;
37
43
  /** Index of Refraction, used for calculating fresnel; reflections tend to be more intense the steeper the angle between them and the viewer is, the ior parameter set how much the intensity varies */
38
44
  ior?: number;
39
- /** WebGL2 only - whether to use multiple render targets when rendering the G-buffers (normals, depth and roughness); using them can improve performance as they will render all information to multiple buffers for each fragment in one run */
40
- useMRT?: boolean;
41
- /** If normal maps should be taken account of when calculating reflections */
42
- useNormalMap?: boolean;
43
- /** If roughness maps should be taken account of when calculating reflections */
44
- useRoughnessMap?: boolean;
45
+ /** if there should still be reflections for rays for which a reflecting point couldn't be found; enabling this will result in stretched looking reflections which can look good or bad depending on the angle */
46
+ STRETCH_MISSED_RAYS?: boolean;
47
+ /** WebGL2 only - whether to use multiple render targets when rendering the G-buffers (normals, depth and roughness); using them can improve performance as they will render all information to multiple buffers for each fragment in one run; this setting can't be changed during run-time */
48
+ USE_MRT?: boolean;
49
+ /** if roughness maps should be taken account of when calculating reflections */
50
+ USE_ROUGHNESSMAP?: boolean;
51
+ /** if normal maps should be taken account of when calculating reflections */
52
+ USE_NORMALMAP?: boolean;
45
53
  };
46
- export declare const SSR: React.ForwardRefExoticComponent<SSRProps & React.RefAttributes<SSRPass>>;
54
+ export declare const SSR: React.ForwardRefExoticComponent<SSRProps & React.RefAttributes<SSREffect>>;
47
55
  export {};
package/dist/index.cjs CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var postprocessing = require('postprocessing');
6
6
  var _objectWithoutPropertiesLoose = require('@babel/runtime/helpers/objectWithoutPropertiesLoose');
7
7
  var React = require('react');
8
- var THREE = require('three');
8
+ var three = require('three');
9
9
  var fiber = require('@react-three/fiber');
10
10
  var _extends = require('@babel/runtime/helpers/extends');
11
11
  var _construct = require('@babel/runtime/helpers/construct');
@@ -15,27 +15,8 @@ var screenSpaceReflections = require('screen-space-reflections');
15
15
 
16
16
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
17
 
18
- function _interopNamespace(e) {
19
- if (e && e.__esModule) return e;
20
- var n = Object.create(null);
21
- if (e) {
22
- Object.keys(e).forEach(function (k) {
23
- if (k !== 'default') {
24
- var d = Object.getOwnPropertyDescriptor(e, k);
25
- Object.defineProperty(n, k, d.get ? d : {
26
- enumerable: true,
27
- get: function () { return e[k]; }
28
- });
29
- }
30
- });
31
- }
32
- n["default"] = e;
33
- return Object.freeze(n);
34
- }
35
-
36
18
  var _objectWithoutPropertiesLoose__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutPropertiesLoose);
37
19
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
38
- var THREE__namespace = /*#__PURE__*/_interopNamespace(THREE);
39
20
  var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
40
21
  var _construct__default = /*#__PURE__*/_interopDefaultLegacy(_construct);
41
22
  var mergeRefs__default = /*#__PURE__*/_interopDefaultLegacy(mergeRefs);
@@ -80,12 +61,12 @@ var wrapEffect = function wrapEffect(effectImpl, defaultBlendMode) {
80
61
  var useVector2 = function useVector2(props, key) {
81
62
  var vec = props[key];
82
63
  return React.useMemo(function () {
83
- if (vec instanceof THREE.Vector2) {
84
- return new THREE.Vector2().set(vec.x, vec.y);
64
+ if (vec instanceof three.Vector2) {
65
+ return new three.Vector2().set(vec.x, vec.y);
85
66
  } else if (Array.isArray(vec)) {
86
67
  var x = vec[0],
87
68
  y = vec[1];
88
- return new THREE.Vector2().set(x, y);
69
+ return new three.Vector2().set(x, y);
89
70
  }
90
71
  }, [vec]);
91
72
  };
@@ -145,7 +126,7 @@ var EffectComposer = /*#__PURE__*/React__default["default"].memo( /*#__PURE__*/R
145
126
  _ref$multisampling = _ref.multisampling,
146
127
  multisampling = _ref$multisampling === void 0 ? 8 : _ref$multisampling,
147
128
  _ref$frameBufferType = _ref.frameBufferType,
148
- frameBufferType = _ref$frameBufferType === void 0 ? THREE__namespace.HalfFloatType : _ref$frameBufferType;
129
+ frameBufferType = _ref$frameBufferType === void 0 ? three.HalfFloatType : _ref$frameBufferType;
149
130
 
150
131
  var _useThree = fiber.useThree(),
151
132
  gl = _useThree.gl,
@@ -262,7 +243,7 @@ var DepthOfField = /*#__PURE__*/React.forwardRef(function DepthOfField(_ref, ref
262
243
  }, [camera, props]);
263
244
  React.useLayoutEffect(function () {
264
245
  if (target) {
265
- var vec = target instanceof THREE.Vector3 ? new THREE.Vector3().set(target.x, target.y, target.z) : new THREE.Vector3().set(target[0], target[1], target[2]);
246
+ var vec = target instanceof three.Vector3 ? new three.Vector3().set(target.x, target.y, target.z) : new three.Vector3().set(target[0], target[1], target[2]);
266
247
  effect.target = vec;
267
248
  }
268
249
 
@@ -673,10 +654,10 @@ var Texture = /*#__PURE__*/React.forwardRef(function Texture(_ref, ref) {
673
654
  texture = _ref.texture,
674
655
  props = _objectWithoutPropertiesLoose__default["default"](_ref, _excluded$2);
675
656
 
676
- var t = fiber.useLoader(THREE.TextureLoader, textureSrc);
657
+ var t = fiber.useLoader(three.TextureLoader, textureSrc);
677
658
  React.useLayoutEffect(function () {
678
- t.encoding = THREE.sRGBEncoding;
679
- t.wrapS = t.wrapT = THREE.RepeatWrapping;
659
+ t.encoding = three.sRGBEncoding;
660
+ t.wrapS = t.wrapT = three.RepeatWrapping;
680
661
  }, [t]);
681
662
  var effect = React.useMemo(function () {
682
663
  return new postprocessing.TextureEffect(_extends__default["default"]({}, props, {
@@ -720,97 +701,38 @@ var LUT = /*#__PURE__*/React.forwardRef(function LUT(_ref, ref) {
720
701
  });
721
702
  });
722
703
 
723
- var _excluded = ["blurSize", "enabled"];
704
+ var _excluded = ["ENABLE_BLUR", "USE_MRT"];
724
705
 
725
706
  var SSR = /*#__PURE__*/React.forwardRef(function SSR(_ref, ref) {
726
- var _ref$blurSize = _ref.blurSize,
727
- blurSize = _ref$blurSize === void 0 ? 512 : _ref$blurSize,
728
- _ref$enabled = _ref.enabled,
729
- enabled = _ref$enabled === void 0 ? true : _ref$enabled,
707
+ var _ref$ENABLE_BLUR = _ref.ENABLE_BLUR,
708
+ ENABLE_BLUR = _ref$ENABLE_BLUR === void 0 ? true : _ref$ENABLE_BLUR,
709
+ _ref$USE_MRT = _ref.USE_MRT,
710
+ USE_MRT = _ref$USE_MRT === void 0 ? true : _ref$USE_MRT,
730
711
  props = _objectWithoutPropertiesLoose__default["default"](_ref, _excluded);
731
712
 
732
713
  var _useThree = fiber.useThree(),
733
- size = _useThree.size,
734
- viewport = _useThree.viewport,
735
714
  invalidate = _useThree.invalidate;
736
715
 
737
716
  var _useContext = React.useContext(EffectComposerContext),
738
- composer = _useContext.composer,
739
717
  scene = _useContext.scene,
740
718
  camera = _useContext.camera;
741
719
 
742
- var _useState = React.useState(function () {
743
- return new screenSpaceReflections.SSRPass(scene, camera, _extends__default["default"]({
744
- width: size.width * viewport.dpr,
745
- height: size.height * viewport.dpr,
746
- blurWidth: blurSize,
747
- blurHeight: blurSize,
748
- blurKernelSize: postprocessing.KernelSize.SMALL,
749
- rayStep: 0.1,
750
- intensity: 1,
751
- power: 1,
752
- depthBlur: 0.1,
753
- enableJittering: false,
754
- jitter: 0.1,
755
- jitterSpread: 0.1,
756
- roughnessFadeOut: 1,
757
- MAX_STEPS: 20,
758
- NUM_BINARY_SEARCH_STEPS: 5,
759
- maxDepthDifference: 1,
760
- maxDepth: 1,
761
- thickness: 10,
762
- ior: 1.45,
763
- useBlur: true,
764
- useMRT: true,
765
- useNormalMap: true,
766
- useRoughnessMap: true
720
+ var effect = React.useMemo(function () {
721
+ return new screenSpaceReflections.SSREffect(scene, camera, _extends__default["default"]({
722
+ ENABLE_BLUR: ENABLE_BLUR,
723
+ USE_MRT: USE_MRT
767
724
  }, props));
768
- }),
769
- pass = _useState[0];
770
-
771
- React.useEffect(function () {
725
+ }, [screenSpaceReflections.SSREffect, scene, camera, ENABLE_BLUR, USE_MRT]);
726
+ React.useLayoutEffect(function () {
772
727
  Object.keys(props).forEach(function (key) {
773
- return pass.reflectionUniforms[key] && (pass.reflectionUniforms[key].value = props[key]);
728
+ return effect[key] = props[key];
774
729
  });
775
- }, [props]);
776
- React.useEffect(function () {
777
- // Steps
778
- pass.reflectionsPass.fullscreenMaterial.defines.MAX_STEPS = Math.ceil(props.MAX_STEPS);
779
- pass.reflectionsPass.fullscreenMaterial.defines.NUM_BINARY_SEARCH_STEPS = Math.ceil(props.NUM_BINARY_SEARCH_STEPS); // Blur
780
-
781
- if (props.useBlur) {
782
- pass.fullscreenMaterial.defines.USE_BLUR = '';
783
- pass.reflectionsPass.fullscreenMaterial.defines.USE_BLUR = '';
784
- } else {
785
- delete pass.fullscreenMaterial.defines.USE_BLUR;
786
- delete pass.reflectionsPass.fullscreenMaterial.defines.USE_BLUR;
787
- } // Jitter
788
-
789
-
790
- if (props.enableJittering) {
791
- pass.reflectionsPass.fullscreenMaterial.defines.USE_JITTERING = '';
792
- } else {
793
- delete pass.reflectionsPass.fullscreenMaterial.defines.USE_JITTERING;
794
- } // Enabled
795
-
796
-
797
- pass.fullscreenMaterial.defines.RENDER_MODE = enabled ? 0 : 4; // Update materials
798
-
799
- pass.reflectionsPass.fullscreenMaterial.needsUpdate = true;
800
- pass.fullscreenMaterial.needsUpdate = true;
801
- }, [enabled, props.useBlur, props.enableJittering, props.NUM_BINARY_SEARCH_STEPS, props.MAX_STEPS]);
802
- React.useEffect(function () {
803
- pass.setSize(size.width * viewport.dpr, size.height * viewport.dpr);
804
- pass.kawaseBlurPass.setSize(blurSize, blurSize);
805
730
  invalidate();
806
- }, [blurSize, size, viewport, composer, pass, invalidate]);
807
- React.useLayoutEffect(function () {
808
- composer.addPass(pass);
809
- return function () {
810
- composer.removePass(pass);
811
- };
812
- }, [composer, pass]);
813
- return null;
731
+ }, [props]);
732
+ return /*#__PURE__*/React__default["default"].createElement("primitive", {
733
+ ref: ref,
734
+ object: effect
735
+ });
814
736
  });
815
737
 
816
738
  exports.Bloom = Bloom;
package/dist/index.js CHANGED
@@ -1,12 +1,11 @@
1
- import { BlendFunction, BloomEffect, BrightnessContrastEffect, ChromaticAberrationEffect, ColorAverageEffect, ColorDepthEffect, DepthEffect, EffectComposer as EffectComposer$1, RenderPass, NormalPass, DepthDownsamplingPass, EffectPass, DepthOfFieldEffect, DotScreenEffect, GlitchEffect, GlitchMode, GodRaysEffect, GridEffect, HueSaturationEffect, NoiseEffect, OutlineEffect, PixelationEffect, ScanlineEffect, SelectiveBloomEffect, SepiaEffect, SSAOEffect, SMAAPreset, EdgeDetectionMode, SMAAImageLoader, SMAAEffect, TextureEffect, ToneMappingEffect, VignetteEffect, ShockWaveEffect, LUTEffect, KernelSize } from 'postprocessing';
1
+ import { BlendFunction, BloomEffect, BrightnessContrastEffect, ChromaticAberrationEffect, ColorAverageEffect, ColorDepthEffect, DepthEffect, EffectComposer as EffectComposer$1, RenderPass, NormalPass, DepthDownsamplingPass, EffectPass, DepthOfFieldEffect, DotScreenEffect, GlitchEffect, GlitchMode, GodRaysEffect, GridEffect, HueSaturationEffect, NoiseEffect, OutlineEffect, PixelationEffect, ScanlineEffect, SelectiveBloomEffect, SepiaEffect, SSAOEffect, SMAAPreset, EdgeDetectionMode, SMAAImageLoader, SMAAEffect, TextureEffect, ToneMappingEffect, VignetteEffect, ShockWaveEffect, LUTEffect } from 'postprocessing';
2
2
  import React, { forwardRef, useMemo, useLayoutEffect, createContext, useEffect, useRef, useImperativeHandle, useContext, useState } from 'react';
3
- import * as THREE from 'three';
4
- import { Vector2, Vector3, TextureLoader, sRGBEncoding, RepeatWrapping } from 'three';
3
+ import { Vector2, HalfFloatType, Vector3, TextureLoader, sRGBEncoding, RepeatWrapping } from 'three';
5
4
  import { useThree, useFrame, useLoader } from '@react-three/fiber';
6
5
  import { isWebGL2Available } from 'three-stdlib';
7
6
  import mergeRefs from 'react-merge-refs';
8
7
  import _extends from '@babel/runtime/helpers/esm/extends';
9
- import { SSRPass } from 'screen-space-reflections';
8
+ import { SSREffect } from 'screen-space-reflections';
10
9
 
11
10
  const isRef = ref => !!ref.current;
12
11
 
@@ -96,7 +95,7 @@ const EffectComposer = /*#__PURE__*/React.memo( /*#__PURE__*/forwardRef((_ref, r
96
95
  disableNormalPass,
97
96
  stencilBuffer,
98
97
  multisampling = 8,
99
- frameBufferType = THREE.HalfFloatType
98
+ frameBufferType = HalfFloatType
100
99
  } = _ref;
101
100
  const {
102
101
  gl,
@@ -598,87 +597,30 @@ const LUT = /*#__PURE__*/forwardRef(function LUT(_ref, ref) {
598
597
 
599
598
  const SSR = /*#__PURE__*/forwardRef(function SSR(_ref, ref) {
600
599
  let {
601
- blurSize = 512,
602
- enabled = true,
600
+ ENABLE_BLUR = true,
601
+ USE_MRT = true,
603
602
  ...props
604
603
  } = _ref;
605
604
  const {
606
- size,
607
- viewport,
608
605
  invalidate
609
606
  } = useThree();
610
607
  const {
611
- composer,
612
608
  scene,
613
609
  camera
614
610
  } = useContext(EffectComposerContext);
615
- const [pass] = useState(() => new SSRPass(scene, camera, {
616
- width: size.width * viewport.dpr,
617
- height: size.height * viewport.dpr,
618
- blurWidth: blurSize,
619
- blurHeight: blurSize,
620
- blurKernelSize: KernelSize.SMALL,
621
- rayStep: 0.1,
622
- intensity: 1,
623
- power: 1,
624
- depthBlur: 0.1,
625
- enableJittering: false,
626
- jitter: 0.1,
627
- jitterSpread: 0.1,
628
- roughnessFadeOut: 1,
629
- MAX_STEPS: 20,
630
- NUM_BINARY_SEARCH_STEPS: 5,
631
- maxDepthDifference: 1,
632
- maxDepth: 1,
633
- thickness: 10,
634
- ior: 1.45,
635
- useBlur: true,
636
- useMRT: true,
637
- useNormalMap: true,
638
- useRoughnessMap: true,
611
+ const effect = useMemo(() => new SSREffect(scene, camera, {
612
+ ENABLE_BLUR,
613
+ USE_MRT,
639
614
  ...props
640
- }));
641
- useEffect(() => {
642
- Object.keys(props).forEach(key => pass.reflectionUniforms[key] && (pass.reflectionUniforms[key].value = props[key]));
643
- }, [props]);
644
- useEffect(() => {
645
- // Steps
646
- pass.reflectionsPass.fullscreenMaterial.defines.MAX_STEPS = Math.ceil(props.MAX_STEPS);
647
- pass.reflectionsPass.fullscreenMaterial.defines.NUM_BINARY_SEARCH_STEPS = Math.ceil(props.NUM_BINARY_SEARCH_STEPS); // Blur
648
-
649
- if (props.useBlur) {
650
- pass.fullscreenMaterial.defines.USE_BLUR = '';
651
- pass.reflectionsPass.fullscreenMaterial.defines.USE_BLUR = '';
652
- } else {
653
- delete pass.fullscreenMaterial.defines.USE_BLUR;
654
- delete pass.reflectionsPass.fullscreenMaterial.defines.USE_BLUR;
655
- } // Jitter
656
-
657
-
658
- if (props.enableJittering) {
659
- pass.reflectionsPass.fullscreenMaterial.defines.USE_JITTERING = '';
660
- } else {
661
- delete pass.reflectionsPass.fullscreenMaterial.defines.USE_JITTERING;
662
- } // Enabled
663
-
664
-
665
- pass.fullscreenMaterial.defines.RENDER_MODE = enabled ? 0 : 4; // Update materials
666
-
667
- pass.reflectionsPass.fullscreenMaterial.needsUpdate = true;
668
- pass.fullscreenMaterial.needsUpdate = true;
669
- }, [enabled, props.useBlur, props.enableJittering, props.NUM_BINARY_SEARCH_STEPS, props.MAX_STEPS]);
670
- useEffect(() => {
671
- pass.setSize(size.width * viewport.dpr, size.height * viewport.dpr);
672
- pass.kawaseBlurPass.setSize(blurSize, blurSize);
673
- invalidate();
674
- }, [blurSize, size, viewport, composer, pass, invalidate]);
615
+ }), [SSREffect, scene, camera, ENABLE_BLUR, USE_MRT]);
675
616
  useLayoutEffect(() => {
676
- composer.addPass(pass);
677
- return () => {
678
- composer.removePass(pass);
679
- };
680
- }, [composer, pass]);
681
- return null;
617
+ Object.keys(props).forEach(key => effect[key] = props[key]);
618
+ invalidate();
619
+ }, [props]);
620
+ return /*#__PURE__*/React.createElement("primitive", {
621
+ ref: ref,
622
+ object: effect
623
+ });
682
624
  });
683
625
 
684
626
  export { Bloom, BrightnessContrast, ChromaticAberration, ColorAverage, ColorDepth, Depth, DepthOfField, DotScreen, EffectComposer, EffectComposerContext, Glitch, GodRays, Grid, HueSaturation, LUT, Noise, Outline, Pixelation, SMAA, SSAO, SSR, Scanline, Select, Selection, SelectiveBloom, Sepia, ShockWave, Texture, ToneMapping, Vignette, selectionContext };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-three/postprocessing",
3
- "version": "2.4.4",
3
+ "version": "2.5.0",
4
4
  "description": "postprocessing wrapper for React and @react-three/fiber",
5
5
  "keywords": [
6
6
  "postprocessing",
@@ -39,9 +39,9 @@
39
39
  "typegen": "tsc --emitDeclarationOnly || true"
40
40
  },
41
41
  "dependencies": {
42
- "postprocessing": "^6.28.1",
42
+ "postprocessing": "^6.28.4",
43
43
  "react-merge-refs": "^1.1.0",
44
- "screen-space-reflections": "^1.0.7",
44
+ "screen-space-reflections": "^2.0.4",
45
45
  "three-stdlib": "^2.8.11"
46
46
  },
47
47
  "devDependencies": {