@react-three/postprocessing 2.4.4 → 2.4.5

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,7 +1,9 @@
1
- import React from 'react';
1
+ /// <reference types="react" />
2
2
  declare type SSRProps = {
3
3
  /** Enables the effect pass */
4
4
  enabled?: boolean;
5
+ /** Size of the output buffer */
6
+ resolutionScale?: number;
5
7
  /** Size of the blur buffer */
6
8
  blurSize?: number;
7
9
  /** Whether to blur the reflections and blend these blurred reflections depending on the roughness and depth of the reflection ray */
@@ -43,5 +45,5 @@ declare type SSRProps = {
43
45
  /** If roughness maps should be taken account of when calculating reflections */
44
46
  useRoughnessMap?: boolean;
45
47
  };
46
- export declare const SSR: React.ForwardRefExoticComponent<SSRProps & React.RefAttributes<SSRPass>>;
48
+ export declare const SSR: import("react").ForwardRefExoticComponent<SSRProps & import("react").RefAttributes<SSRPass>>;
47
49
  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,10 +701,12 @@ var LUT = /*#__PURE__*/React.forwardRef(function LUT(_ref, ref) {
720
701
  });
721
702
  });
722
703
 
723
- var _excluded = ["blurSize", "enabled"];
704
+ var _excluded = ["resolutionScale", "blurSize", "enabled"];
724
705
 
725
706
  var SSR = /*#__PURE__*/React.forwardRef(function SSR(_ref, ref) {
726
- var _ref$blurSize = _ref.blurSize,
707
+ var _ref$resolutionScale = _ref.resolutionScale,
708
+ resolutionScale = _ref$resolutionScale === void 0 ? 1 : _ref$resolutionScale,
709
+ _ref$blurSize = _ref.blurSize,
727
710
  blurSize = _ref$blurSize === void 0 ? 512 : _ref$blurSize,
728
711
  _ref$enabled = _ref.enabled,
729
712
  enabled = _ref$enabled === void 0 ? true : _ref$enabled,
@@ -741,8 +724,8 @@ var SSR = /*#__PURE__*/React.forwardRef(function SSR(_ref, ref) {
741
724
 
742
725
  var _useState = React.useState(function () {
743
726
  return new screenSpaceReflections.SSRPass(scene, camera, _extends__default["default"]({
744
- width: size.width * viewport.dpr,
745
- height: size.height * viewport.dpr,
727
+ width: size.width * viewport.dpr * resolutionScale,
728
+ height: size.height * viewport.dpr * resolutionScale,
746
729
  blurWidth: blurSize,
747
730
  blurHeight: blurSize,
748
731
  blurKernelSize: postprocessing.KernelSize.SMALL,
@@ -772,6 +755,7 @@ var SSR = /*#__PURE__*/React.forwardRef(function SSR(_ref, ref) {
772
755
  Object.keys(props).forEach(function (key) {
773
756
  return pass.reflectionUniforms[key] && (pass.reflectionUniforms[key].value = props[key]);
774
757
  });
758
+ invalidate();
775
759
  }, [props]);
776
760
  React.useEffect(function () {
777
761
  // Steps
@@ -798,16 +782,17 @@ var SSR = /*#__PURE__*/React.forwardRef(function SSR(_ref, ref) {
798
782
 
799
783
  pass.reflectionsPass.fullscreenMaterial.needsUpdate = true;
800
784
  pass.fullscreenMaterial.needsUpdate = true;
785
+ invalidate();
801
786
  }, [enabled, props.useBlur, props.enableJittering, props.NUM_BINARY_SEARCH_STEPS, props.MAX_STEPS]);
802
787
  React.useEffect(function () {
803
- pass.setSize(size.width * viewport.dpr, size.height * viewport.dpr);
788
+ pass.setSize(size.width * viewport.dpr * resolutionScale, size.height * viewport.dpr * resolutionScale);
804
789
  pass.kawaseBlurPass.setSize(blurSize, blurSize);
805
790
  invalidate();
806
- }, [blurSize, size, viewport, composer, pass, invalidate]);
791
+ }, [resolutionScale, blurSize, size, viewport, composer, pass, invalidate]);
807
792
  React.useLayoutEffect(function () {
808
793
  composer.addPass(pass);
809
794
  return function () {
810
- composer.removePass(pass);
795
+ composer.removePass(pass); //pass.dispose()
811
796
  };
812
797
  }, [composer, pass]);
813
798
  return null;
package/dist/index.js CHANGED
@@ -1,7 +1,6 @@
1
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';
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';
@@ -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,6 +597,7 @@ const LUT = /*#__PURE__*/forwardRef(function LUT(_ref, ref) {
598
597
 
599
598
  const SSR = /*#__PURE__*/forwardRef(function SSR(_ref, ref) {
600
599
  let {
600
+ resolutionScale = 1,
601
601
  blurSize = 512,
602
602
  enabled = true,
603
603
  ...props
@@ -613,8 +613,8 @@ const SSR = /*#__PURE__*/forwardRef(function SSR(_ref, ref) {
613
613
  camera
614
614
  } = useContext(EffectComposerContext);
615
615
  const [pass] = useState(() => new SSRPass(scene, camera, {
616
- width: size.width * viewport.dpr,
617
- height: size.height * viewport.dpr,
616
+ width: size.width * viewport.dpr * resolutionScale,
617
+ height: size.height * viewport.dpr * resolutionScale,
618
618
  blurWidth: blurSize,
619
619
  blurHeight: blurSize,
620
620
  blurKernelSize: KernelSize.SMALL,
@@ -640,6 +640,7 @@ const SSR = /*#__PURE__*/forwardRef(function SSR(_ref, ref) {
640
640
  }));
641
641
  useEffect(() => {
642
642
  Object.keys(props).forEach(key => pass.reflectionUniforms[key] && (pass.reflectionUniforms[key].value = props[key]));
643
+ invalidate();
643
644
  }, [props]);
644
645
  useEffect(() => {
645
646
  // Steps
@@ -666,16 +667,17 @@ const SSR = /*#__PURE__*/forwardRef(function SSR(_ref, ref) {
666
667
 
667
668
  pass.reflectionsPass.fullscreenMaterial.needsUpdate = true;
668
669
  pass.fullscreenMaterial.needsUpdate = true;
670
+ invalidate();
669
671
  }, [enabled, props.useBlur, props.enableJittering, props.NUM_BINARY_SEARCH_STEPS, props.MAX_STEPS]);
670
672
  useEffect(() => {
671
- pass.setSize(size.width * viewport.dpr, size.height * viewport.dpr);
673
+ pass.setSize(size.width * viewport.dpr * resolutionScale, size.height * viewport.dpr * resolutionScale);
672
674
  pass.kawaseBlurPass.setSize(blurSize, blurSize);
673
675
  invalidate();
674
- }, [blurSize, size, viewport, composer, pass, invalidate]);
676
+ }, [resolutionScale, blurSize, size, viewport, composer, pass, invalidate]);
675
677
  useLayoutEffect(() => {
676
678
  composer.addPass(pass);
677
679
  return () => {
678
- composer.removePass(pass);
680
+ composer.removePass(pass); //pass.dispose()
679
681
  };
680
682
  }, [composer, pass]);
681
683
  return null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-three/postprocessing",
3
- "version": "2.4.4",
3
+ "version": "2.4.5",
4
4
  "description": "postprocessing wrapper for React and @react-three/fiber",
5
5
  "keywords": [
6
6
  "postprocessing",