@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.
- package/dist/EffectComposer.d.ts +1 -2
- package/dist/effects/SSR.d.ts +4 -2
- package/dist/index.cjs +20 -35
- package/dist/index.js +10 -8
- package/package.json +1 -1
package/dist/EffectComposer.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import
|
|
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;
|
package/dist/effects/SSR.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
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:
|
|
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
|
|
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
|
|
84
|
-
return new
|
|
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
|
|
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 ?
|
|
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
|
|
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(
|
|
657
|
+
var t = fiber.useLoader(three.TextureLoader, textureSrc);
|
|
677
658
|
React.useLayoutEffect(function () {
|
|
678
|
-
t.encoding =
|
|
679
|
-
t.wrapS = t.wrapT =
|
|
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$
|
|
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
|
|
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 =
|
|
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;
|