@react-three/postprocessing 2.4.1 → 2.4.4
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/effects/SSR.d.ts +21 -21
- package/dist/index.cjs +38 -35
- package/dist/index.js +15 -10
- package/package.json +2 -2
package/dist/effects/SSR.d.ts
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
declare type SSRProps = {
|
|
3
3
|
/** Enables the effect pass */
|
|
4
|
-
enabled
|
|
4
|
+
enabled?: boolean;
|
|
5
5
|
/** Size of the blur buffer */
|
|
6
|
-
blurSize
|
|
6
|
+
blurSize?: number;
|
|
7
7
|
/** Whether to blur the reflections and blend these blurred reflections depending on the roughness and depth of the reflection ray */
|
|
8
|
-
useBlur
|
|
8
|
+
useBlur?: boolean;
|
|
9
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 */
|
|
10
|
-
blurKernelSize
|
|
10
|
+
blurKernelSize?: number;
|
|
11
11
|
/** How much the reflection ray should travel in each of its iteration; higher values will give deeper reflections but with more artifacts */
|
|
12
|
-
rayStep
|
|
12
|
+
rayStep?: number;
|
|
13
13
|
/** The intensity of the reflections */
|
|
14
|
-
intensity
|
|
14
|
+
intensity?: number;
|
|
15
15
|
/** The power by which the reflections should be potentiated; higher values will give a more intense and vibrant look */
|
|
16
|
-
power
|
|
16
|
+
power?: number;
|
|
17
17
|
/** How much deep reflections will be blurred (as reflections become blurrier the further away the object they are reflecting is) */
|
|
18
|
-
depthBlur
|
|
18
|
+
depthBlur?: number;
|
|
19
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
|
|
20
|
+
enableJittering?: boolean;
|
|
21
21
|
/** How intense jittering should be */
|
|
22
|
-
jitter
|
|
22
|
+
jitter?: number;
|
|
23
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 */
|
|
24
|
-
jitterSpread
|
|
24
|
+
jitterSpread?: number;
|
|
25
25
|
/** Roughness fade out */
|
|
26
|
-
roughnessFadeOut
|
|
26
|
+
roughnessFadeOut?: number;
|
|
27
27
|
/** The number of steps a reflection ray can maximally do to find an object it intersected (and thus reflects) */
|
|
28
|
-
MAX_STEPS
|
|
28
|
+
MAX_STEPS?: number;
|
|
29
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 */
|
|
30
|
-
NUM_BINARY_SEARCH_STEPS
|
|
30
|
+
NUM_BINARY_SEARCH_STEPS?: number;
|
|
31
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 */
|
|
32
|
-
maxDepthDifference
|
|
32
|
+
maxDepthDifference?: number;
|
|
33
33
|
/** The maximum depth for which reflections will be calculated */
|
|
34
|
-
maxDepth
|
|
34
|
+
maxDepth?: number;
|
|
35
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 */
|
|
36
|
-
thickness
|
|
36
|
+
thickness?: number;
|
|
37
37
|
/** 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
|
-
ior
|
|
38
|
+
ior?: number;
|
|
39
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
|
|
40
|
+
useMRT?: boolean;
|
|
41
41
|
/** If normal maps should be taken account of when calculating reflections */
|
|
42
|
-
useNormalMap
|
|
42
|
+
useNormalMap?: boolean;
|
|
43
43
|
/** If roughness maps should be taken account of when calculating reflections */
|
|
44
|
-
useRoughnessMap
|
|
44
|
+
useRoughnessMap?: boolean;
|
|
45
45
|
};
|
|
46
46
|
export declare const SSR: React.ForwardRefExoticComponent<SSRProps & React.RefAttributes<SSRPass>>;
|
|
47
47
|
export {};
|
package/dist/index.cjs
CHANGED
|
@@ -739,37 +739,34 @@ var SSR = /*#__PURE__*/React.forwardRef(function SSR(_ref, ref) {
|
|
|
739
739
|
scene = _useContext.scene,
|
|
740
740
|
camera = _useContext.camera;
|
|
741
741
|
|
|
742
|
-
var _useState = React.useState(
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
var _useState2 = React.useState(function () {
|
|
770
|
-
return new screenSpaceReflections.SSRPass(composer, scene, camera, options);
|
|
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
|
|
767
|
+
}, props));
|
|
771
768
|
}),
|
|
772
|
-
pass =
|
|
769
|
+
pass = _useState[0];
|
|
773
770
|
|
|
774
771
|
React.useEffect(function () {
|
|
775
772
|
Object.keys(props).forEach(function (key) {
|
|
@@ -777,24 +774,30 @@ var SSR = /*#__PURE__*/React.forwardRef(function SSR(_ref, ref) {
|
|
|
777
774
|
});
|
|
778
775
|
}, [props]);
|
|
779
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
|
+
|
|
780
781
|
if (props.useBlur) {
|
|
781
782
|
pass.fullscreenMaterial.defines.USE_BLUR = '';
|
|
782
783
|
pass.reflectionsPass.fullscreenMaterial.defines.USE_BLUR = '';
|
|
783
784
|
} else {
|
|
784
785
|
delete pass.fullscreenMaterial.defines.USE_BLUR;
|
|
785
786
|
delete pass.reflectionsPass.fullscreenMaterial.defines.USE_BLUR;
|
|
786
|
-
}
|
|
787
|
+
} // Jitter
|
|
788
|
+
|
|
787
789
|
|
|
788
790
|
if (props.enableJittering) {
|
|
789
791
|
pass.reflectionsPass.fullscreenMaterial.defines.USE_JITTERING = '';
|
|
790
792
|
} else {
|
|
791
793
|
delete pass.reflectionsPass.fullscreenMaterial.defines.USE_JITTERING;
|
|
792
|
-
}
|
|
794
|
+
} // Enabled
|
|
795
|
+
|
|
796
|
+
|
|
797
|
+
pass.fullscreenMaterial.defines.RENDER_MODE = enabled ? 0 : 4; // Update materials
|
|
793
798
|
|
|
794
|
-
pass.reflectionsPass.fullscreenMaterial.defines.MAX_STEPS = Math.ceil(props.MAX_STEPS);
|
|
795
|
-
pass.reflectionsPass.fullscreenMaterial.defines.NUM_BINARY_SEARCH_STEPS = Math.ceil(props.NUM_BINARY_SEARCH_STEPS);
|
|
796
|
-
pass.fullscreenMaterial.defines.RENDER_MODE = enabled ? 0 : 4;
|
|
797
799
|
pass.reflectionsPass.fullscreenMaterial.needsUpdate = true;
|
|
800
|
+
pass.fullscreenMaterial.needsUpdate = true;
|
|
798
801
|
}, [enabled, props.useBlur, props.enableJittering, props.NUM_BINARY_SEARCH_STEPS, props.MAX_STEPS]);
|
|
799
802
|
React.useEffect(function () {
|
|
800
803
|
pass.setSize(size.width * viewport.dpr, size.height * viewport.dpr);
|
package/dist/index.js
CHANGED
|
@@ -612,9 +612,9 @@ const SSR = /*#__PURE__*/forwardRef(function SSR(_ref, ref) {
|
|
|
612
612
|
scene,
|
|
613
613
|
camera
|
|
614
614
|
} = useContext(EffectComposerContext);
|
|
615
|
-
const [
|
|
616
|
-
width: size.width,
|
|
617
|
-
height: size.height,
|
|
615
|
+
const [pass] = useState(() => new SSRPass(scene, camera, {
|
|
616
|
+
width: size.width * viewport.dpr,
|
|
617
|
+
height: size.height * viewport.dpr,
|
|
618
618
|
blurWidth: blurSize,
|
|
619
619
|
blurHeight: blurSize,
|
|
620
620
|
blurKernelSize: KernelSize.SMALL,
|
|
@@ -637,30 +637,35 @@ const SSR = /*#__PURE__*/forwardRef(function SSR(_ref, ref) {
|
|
|
637
637
|
useNormalMap: true,
|
|
638
638
|
useRoughnessMap: true,
|
|
639
639
|
...props
|
|
640
|
-
});
|
|
641
|
-
const [pass] = useState(() => new SSRPass(composer, scene, camera, options));
|
|
640
|
+
}));
|
|
642
641
|
useEffect(() => {
|
|
643
642
|
Object.keys(props).forEach(key => pass.reflectionUniforms[key] && (pass.reflectionUniforms[key].value = props[key]));
|
|
644
643
|
}, [props]);
|
|
645
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
|
+
|
|
646
649
|
if (props.useBlur) {
|
|
647
650
|
pass.fullscreenMaterial.defines.USE_BLUR = '';
|
|
648
651
|
pass.reflectionsPass.fullscreenMaterial.defines.USE_BLUR = '';
|
|
649
652
|
} else {
|
|
650
653
|
delete pass.fullscreenMaterial.defines.USE_BLUR;
|
|
651
654
|
delete pass.reflectionsPass.fullscreenMaterial.defines.USE_BLUR;
|
|
652
|
-
}
|
|
655
|
+
} // Jitter
|
|
656
|
+
|
|
653
657
|
|
|
654
658
|
if (props.enableJittering) {
|
|
655
659
|
pass.reflectionsPass.fullscreenMaterial.defines.USE_JITTERING = '';
|
|
656
660
|
} else {
|
|
657
661
|
delete pass.reflectionsPass.fullscreenMaterial.defines.USE_JITTERING;
|
|
658
|
-
}
|
|
662
|
+
} // Enabled
|
|
663
|
+
|
|
664
|
+
|
|
665
|
+
pass.fullscreenMaterial.defines.RENDER_MODE = enabled ? 0 : 4; // Update materials
|
|
659
666
|
|
|
660
|
-
pass.reflectionsPass.fullscreenMaterial.defines.MAX_STEPS = Math.ceil(props.MAX_STEPS);
|
|
661
|
-
pass.reflectionsPass.fullscreenMaterial.defines.NUM_BINARY_SEARCH_STEPS = Math.ceil(props.NUM_BINARY_SEARCH_STEPS);
|
|
662
|
-
pass.fullscreenMaterial.defines.RENDER_MODE = enabled ? 0 : 4;
|
|
663
667
|
pass.reflectionsPass.fullscreenMaterial.needsUpdate = true;
|
|
668
|
+
pass.fullscreenMaterial.needsUpdate = true;
|
|
664
669
|
}, [enabled, props.useBlur, props.enableJittering, props.NUM_BINARY_SEARCH_STEPS, props.MAX_STEPS]);
|
|
665
670
|
useEffect(() => {
|
|
666
671
|
pass.setSize(size.width * viewport.dpr, size.height * viewport.dpr);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-three/postprocessing",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.4",
|
|
4
4
|
"description": "postprocessing wrapper for React and @react-three/fiber",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"postprocessing",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"postprocessing": "^6.28.1",
|
|
43
43
|
"react-merge-refs": "^1.1.0",
|
|
44
|
-
"screen-space-reflections": "^1.0.
|
|
44
|
+
"screen-space-reflections": "^1.0.7",
|
|
45
45
|
"three-stdlib": "^2.8.11"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|