@react-three/postprocessing 3.0.5 → 3.1.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 (106) hide show
  1. package/README.md +6 -7
  2. package/dist/EffectComposer.d.ts +9 -2
  3. package/dist/EffectGroup.d.ts +9 -0
  4. package/dist/createEffectComponent.d.ts +30 -0
  5. package/dist/effects/ASCII.d.ts +28 -7
  6. package/dist/effects/Autofocus.d.ts +1 -1
  7. package/dist/effects/Bloom.d.ts +9 -1
  8. package/dist/effects/BrightnessContrast.d.ts +14 -1
  9. package/dist/effects/ChromaticAberration.d.ts +26 -3
  10. package/dist/effects/ColorAverage.d.ts +7 -7
  11. package/dist/effects/ColorDepth.d.ts +7 -1
  12. package/dist/effects/Depth.d.ts +12 -1
  13. package/dist/effects/DotScreen.d.ts +14 -1
  14. package/dist/effects/FXAA.d.ts +10 -1
  15. package/dist/effects/Glitch.d.ts +16 -11
  16. package/dist/effects/GodRays.d.ts +1 -1
  17. package/dist/effects/Grid.d.ts +7 -6
  18. package/dist/effects/HueSaturation.d.ts +14 -1
  19. package/dist/effects/LUT.d.ts +1 -1
  20. package/dist/effects/LensFlare.d.ts +46 -5
  21. package/dist/effects/Noise.d.ts +7 -1
  22. package/dist/effects/Outline.d.ts +6 -3
  23. package/dist/effects/Pixelation.d.ts +1 -1
  24. package/dist/effects/Ramp.d.ts +58 -6
  25. package/dist/effects/SMAA.d.ts +9 -1
  26. package/dist/effects/SSAO.d.ts +1 -1
  27. package/dist/effects/ScanlineEffect.d.ts +12 -1
  28. package/dist/effects/SelectiveBloom.d.ts +1 -1
  29. package/dist/effects/Sepia.d.ts +12 -1
  30. package/dist/effects/ShockWave.d.ts +11 -1
  31. package/dist/effects/Texture.d.ts +4 -4
  32. package/dist/effects/TiltShift.d.ts +9 -1
  33. package/dist/effects/TiltShift2.d.ts +44 -4
  34. package/dist/effects/ToneMapping.d.ts +9 -3
  35. package/dist/effects/Vignette.d.ts +18 -1
  36. package/dist/effects/Water.d.ts +17 -1
  37. package/dist/index.d.ts +4 -1
  38. package/dist/index.js +2205 -713
  39. package/dist/index.js.map +1 -1
  40. package/dist/passes/DepthPicking.d.ts +11 -0
  41. package/dist/{effects → passes}/N8AO.d.ts +2 -1
  42. package/dist/util.d.ts +9 -15
  43. package/dist/wrapEffect.d.ts +3 -3
  44. package/package.json +4 -3
  45. package/src/EffectComposer.tsx +143 -42
  46. package/src/EffectGroup.tsx +74 -0
  47. package/src/createEffectComponent.tsx +71 -0
  48. package/src/effects/ASCII.tsx +75 -28
  49. package/src/effects/Autofocus.tsx +24 -77
  50. package/src/effects/Bloom.tsx +32 -4
  51. package/src/effects/BrightnessContrast.tsx +5 -2
  52. package/src/effects/ChromaticAberration.tsx +13 -21
  53. package/src/effects/ColorAverage.tsx +3 -16
  54. package/src/effects/ColorDepth.tsx +23 -2
  55. package/src/effects/Depth.tsx +4 -2
  56. package/src/effects/DepthOfField.tsx +48 -26
  57. package/src/effects/DotScreen.tsx +5 -2
  58. package/src/effects/FXAA.tsx +4 -2
  59. package/src/effects/Glitch.tsx +26 -31
  60. package/src/effects/GodRays.tsx +90 -6
  61. package/src/effects/Grid.tsx +17 -18
  62. package/src/effects/HueSaturation.tsx +5 -2
  63. package/src/effects/LUT.tsx +9 -11
  64. package/src/effects/LensFlare.tsx +209 -55
  65. package/src/effects/Noise.tsx +14 -2
  66. package/src/effects/Outline.tsx +55 -56
  67. package/src/effects/Pixelation.tsx +11 -8
  68. package/src/effects/Ramp.tsx +96 -7
  69. package/src/effects/SMAA.tsx +18 -2
  70. package/src/effects/SSAO.tsx +130 -22
  71. package/src/effects/ScanlineEffect.tsx +6 -6
  72. package/src/effects/SelectiveBloom.tsx +26 -44
  73. package/src/effects/Sepia.tsx +4 -2
  74. package/src/effects/ShockWave.tsx +30 -2
  75. package/src/effects/Texture.tsx +10 -9
  76. package/src/effects/TiltShift.tsx +30 -2
  77. package/src/effects/TiltShift2.tsx +72 -6
  78. package/src/effects/ToneMapping.tsx +16 -3
  79. package/src/effects/Vignette.tsx +5 -2
  80. package/src/effects/Water.tsx +21 -6
  81. package/src/index.ts +4 -2
  82. package/src/passes/DepthPicking.tsx +63 -0
  83. package/src/{effects → passes}/N8AO.tsx +28 -4
  84. package/src/tests/Autofocus.test.tsx +38 -0
  85. package/src/tests/Bloom.test.tsx +76 -0
  86. package/src/tests/ChromaticAberration.test.tsx +50 -0
  87. package/src/tests/ColorDepth.test.tsx +71 -0
  88. package/src/tests/DepthOfField.test.tsx +130 -0
  89. package/src/tests/DepthPicking.test.tsx +250 -0
  90. package/src/tests/EffectComposer.test.tsx +501 -8
  91. package/src/tests/EffectGroup.test.tsx +337 -0
  92. package/src/tests/Glitch.test.tsx +56 -0
  93. package/src/tests/GodRays.test.tsx +101 -0
  94. package/src/tests/Grid.test.tsx +34 -0
  95. package/src/tests/LUT.test.tsx +64 -0
  96. package/src/tests/N8AO.test.tsx +92 -0
  97. package/src/tests/Outline.test.tsx +122 -0
  98. package/src/tests/SSAO.test.tsx +140 -0
  99. package/src/tests/SelectiveBloom.test.tsx +48 -0
  100. package/src/tests/ShockWave.test.tsx +95 -0
  101. package/src/tests/TiltShift.test.tsx +76 -0
  102. package/src/tests/createEffectComponent.test.tsx +286 -0
  103. package/src/tests/effects.smoke.test.tsx +46 -42
  104. package/src/util.tsx +148 -23
  105. package/src/wrapEffect.tsx +3 -2
  106. package/dist/tests/test-utils.d.ts +0 -12
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/EffectComposer.tsx","../src/Selection.tsx","../src/util.tsx","../src/wrapEffect.tsx","../src/effects/ASCII.tsx","../src/effects/DepthOfField.tsx","../src/effects/Autofocus.tsx","../src/effects/Bloom.tsx","../src/effects/BrightnessContrast.tsx","../src/effects/ChromaticAberration.tsx","../src/effects/ColorAverage.tsx","../src/effects/ColorDepth.tsx","../src/effects/Depth.tsx","../src/effects/DotScreen.tsx","../src/effects/FXAA.tsx","../src/effects/Glitch.tsx","../src/effects/GodRays.tsx","../src/effects/Grid.tsx","../src/effects/HueSaturation.tsx","../src/effects/LensFlare.tsx","../src/effects/LUT.tsx","../src/effects/Noise.tsx","../src/effects/Outline.tsx","../src/effects/Pixelation.tsx","../src/effects/Ramp.tsx","../src/effects/ScanlineEffect.tsx","../src/effects/SelectiveBloom.tsx","../src/effects/Sepia.tsx","../src/effects/ShockWave.tsx","../src/effects/SMAA.tsx","../src/effects/SSAO.tsx","../src/effects/Texture.tsx","../src/effects/TiltShift.tsx","../src/effects/TiltShift2.tsx","../src/effects/ToneMapping.tsx","../src/effects/Vignette.tsx","../src/effects/Water.tsx","../src/effects/N8AO.tsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/Selection.tsx","../src/util.tsx","../src/createEffectComponent.tsx","../src/EffectComposer.tsx","../src/EffectGroup.tsx","../src/wrapEffect.tsx","../src/effects/ASCII.tsx","../src/passes/DepthPicking.tsx","../src/effects/DepthOfField.tsx","../src/effects/Autofocus.tsx","../src/effects/Bloom.tsx","../src/effects/BrightnessContrast.tsx","../src/effects/ChromaticAberration.tsx","../src/effects/ColorAverage.tsx","../src/effects/ColorDepth.tsx","../src/effects/Depth.tsx","../src/effects/DotScreen.tsx","../src/effects/FXAA.tsx","../src/effects/Glitch.tsx","../src/effects/GodRays.tsx","../src/effects/Grid.tsx","../src/effects/HueSaturation.tsx","../src/effects/LensFlare.tsx","../src/effects/LUT.tsx","../src/effects/Noise.tsx","../src/effects/Outline.tsx","../src/effects/Pixelation.tsx","../src/effects/Ramp.tsx","../src/effects/ScanlineEffect.tsx","../src/effects/SelectiveBloom.tsx","../src/effects/Sepia.tsx","../src/effects/ShockWave.tsx","../src/effects/SMAA.tsx","../src/effects/SSAO.tsx","../src/effects/Texture.tsx","../src/effects/TiltShift.tsx","../src/effects/TiltShift2.tsx","../src/effects/ToneMapping.tsx","../src/effects/Vignette.tsx","../src/effects/Water.tsx","../src/passes/N8AO.tsx"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { type Ref } from 'react';
2
+ import type { Camera } from 'three';
3
+ import { Vector2, Vector3 } from 'three';
4
+ export type DepthPickingApi = {
5
+ readDepth: (ndc: Vector2 | Vector3) => Promise<number>;
6
+ };
7
+ export type DepthPickingProps = {
8
+ ref?: Ref<DepthPickingApi>;
9
+ };
10
+ export declare function DepthPicking({ ref }: DepthPickingProps): null;
11
+ export declare function useDepthPicking(pass: React.RefObject<DepthPickingApi | null>, camera?: Camera): (x: number, y: number) => Promise<Vector3 | false>;
@@ -2,6 +2,7 @@ import { ReactThreeFiber } from '@react-three/fiber';
2
2
  import { Ref } from 'react';
3
3
  import { N8AOPostPass } from 'n8ao';
4
4
  export type N8AOProps = {
5
+ enabled?: boolean;
5
6
  aoRadius?: number;
6
7
  distanceFalloff?: number;
7
8
  intensity?: number;
@@ -16,4 +17,4 @@ export type N8AOProps = {
16
17
  renderMode?: 0 | 1 | 2 | 3 | 4;
17
18
  ref?: Ref<N8AOPostPass>;
18
19
  };
19
- export declare function N8AO({ halfRes, screenSpaceRadius, quality, depthAwareUpsampling, aoRadius, aoSamples, denoiseSamples, denoiseRadius, distanceFalloff, intensity, color, renderMode, ref, }: N8AOProps): import("react").JSX.Element;
20
+ export declare function N8AO({ enabled, halfRes, screenSpaceRadius, quality, depthAwareUpsampling, aoRadius, aoSamples, denoiseSamples, denoiseRadius, distanceFalloff, intensity, color, renderMode, ref, }: N8AOProps): import("react").JSX.Element;
package/dist/util.d.ts CHANGED
@@ -1,25 +1,19 @@
1
1
  import type { Selection as PPSelection } from 'postprocessing';
2
- import { type RefObject } from 'react';
3
- import { Object3D, Vector2 } from 'three';
2
+ import { type Ref, type RefObject } from 'react';
3
+ import { Group, Object3D, Vector2, Vector3 } from 'three';
4
4
  export declare const EMPTY_ARRAY: never[];
5
5
  export declare const resolveRef: <T>(ref: T | RefObject<T>) => T;
6
- /**
7
- * Keeps a postprocessing effect's `selection` (and its render layer) in
8
- * sync with either mode effects support: the manual
9
- * `selection` prop (used only when there's no enclosing <Selection>), or
10
- * the declarative Selection/Select API. The two are mutually exclusive -
11
- * context wins when both are present.
12
- */
6
+ export declare function useMergeRefs<T>(localRef: RefObject<T | null>, outerRef: Ref<T> | undefined): (instance: T | null) => void | (() => void);
7
+ export declare function readGroupChildren<T>(group: Group, filter: (object: unknown) => object is T): T[];
8
+ export declare function updateIfChanged<T>(ref: RefObject<T[]>, next: T[]): boolean;
13
9
  export declare function useSelectionSync(effect: {
14
10
  selection: PPSelection;
15
11
  }, selection: Object3D | Object3D[] | RefObject<Object3D | null> | RefObject<Object3D | null>[], selectionLayer: number): void;
16
- /**
17
- * r3f never disposes <primitive> objects (their state may be owned outside
18
- * React), so effects rendered that way must dispose themselves. Guards
19
- * against double-dispose across StrictMode's dev-only mount/cleanup/mount
20
- * cycle, where the cleanup closure re-runs against the same instance.
21
- */
22
12
  export declare const useDispose: <T extends {
23
13
  dispose?: () => void;
24
14
  }>(instance: T) => void;
15
+ export declare function readPierced(instance: object, key: string): unknown;
16
+ export declare function applyPierced(instance: object, key: string, value: unknown): void;
17
+ export declare function useLiveDefaults<T extends object>(instance: T | RefObject<T | null> | null, values: Record<string, unknown>, keys: Iterable<string>, get?: (instance: T, key: string) => unknown, set?: (instance: T, key: string, value: unknown) => void): void;
25
18
  export declare const useVector2: (props: Record<string, unknown>, key: string) => Vector2;
19
+ export declare const useVector3: (props: Record<string, unknown>, key: string) => Vector3;
@@ -1,6 +1,7 @@
1
- import type { BlendFunction, Effect, Pass } from 'postprocessing';
1
+ import type { BlendFunction } from 'postprocessing';
2
2
  import { type JSX, type Ref } from 'react';
3
- export type EffectConstructor = new (...args: any[]) => Effect | Pass;
3
+ import type { EffectConstructor } from './createEffectComponent';
4
+ export type { EffectConstructor };
4
5
  type FirstConstructorParam<T extends EffectConstructor> = ConstructorParameters<T> extends [infer P, ...any[]] ? P : ConstructorParameters<T> extends [(infer P)?, ...any[]] ? Partial<P> : {};
5
6
  export type EffectProps<T extends EffectConstructor> = FirstConstructorParam<T> & {
6
7
  ref?: Ref<InstanceType<T>>;
@@ -9,4 +10,3 @@ export type EffectProps<T extends EffectConstructor> = FirstConstructorParam<T>
9
10
  args?: ConstructorParameters<T>;
10
11
  };
11
12
  export declare function wrapEffect<T extends EffectConstructor>(effect: T, defaults?: EffectProps<T>): (props: EffectProps<T>) => JSX.Element;
12
- export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-three/postprocessing",
3
- "version": "3.0.5",
3
+ "version": "3.1.0",
4
4
  "description": "postprocessing wrapper for React and @react-three/fiber",
5
5
  "keywords": [
6
6
  "postprocessing",
@@ -11,6 +11,7 @@
11
11
  "3d"
12
12
  ],
13
13
  "license": "MIT",
14
+ "packageManager": "pnpm@11.15.1",
14
15
  "files": [
15
16
  "dist",
16
17
  "src"
@@ -28,7 +29,7 @@
28
29
  },
29
30
  "homepage": "https://github.com/pmndrs/react-postprocessing#readme",
30
31
  "scripts": {
31
- "build": "vite build && tsc",
32
+ "build": "vite build && tsc -p tsconfig.build.json",
32
33
  "eslint": "eslint . --fix",
33
34
  "eslint:ci": "eslint .",
34
35
  "test": "vitest run",
@@ -70,4 +71,4 @@
70
71
  "react": "^19.2.0",
71
72
  "three": ">= 0.182.0"
72
73
  }
73
- }
74
+ }
@@ -1,5 +1,6 @@
1
- import { useFrame, useThree, type Instance } from '@react-three/fiber'
1
+ import { useFrame, useThree } from '@react-three/fiber'
2
2
  import {
3
+ CopyPass,
3
4
  DepthDownsamplingPass,
4
5
  Effect,
5
6
  EffectAttribute,
@@ -16,13 +17,15 @@ import {
16
17
  useImperativeHandle,
17
18
  useLayoutEffect,
18
19
  useMemo,
20
+ useReducer,
19
21
  useRef,
20
22
  useState,
21
23
  type ReactNode,
22
24
  type Ref,
23
25
  } from 'react'
24
26
  import type { Camera, Group, Scene, TextureDataType, WebGLRenderer } from 'three'
25
- import { HalfFloatType, NoToneMapping } from 'three'
27
+ import { HalfFloatType, NoToneMapping, Vector2 } from 'three'
28
+ import { readGroupChildren, updateIfChanged } from './util'
26
29
 
27
30
  export const EffectComposerContext = /* @__PURE__ */ createContext<{
28
31
  composer: EffectComposerImpl
@@ -31,6 +34,11 @@ export const EffectComposerContext = /* @__PURE__ */ createContext<{
31
34
  camera: Camera
32
35
  scene: Scene
33
36
  resolutionScale?: number
37
+ // A child's local state update doesn't re-render its parent - descendants
38
+ // that add/remove a bare Pass of their own (e.g. EffectGroup) call this
39
+ // to make the tree walk below notice.
40
+ requestRebuild: () => void
41
+ autoClear: boolean
34
42
  }>(null!)
35
43
 
36
44
  export type EffectComposerProps = {
@@ -41,12 +49,15 @@ export type EffectComposerProps = {
41
49
  enableNormalPass?: boolean
42
50
  stencilBuffer?: boolean
43
51
  autoClear?: boolean
52
+ autoRenderToScreen?: boolean
44
53
  resolutionScale?: number
45
54
  multisampling?: number
46
55
  frameBufferType?: TextureDataType
47
56
  renderPriority?: number
48
57
  camera?: Camera
49
58
  scene?: Scene
59
+ renderPass?: (scene: Scene, camera: Camera) => Pass
60
+ mergeMode?: 'auto' | 'all' | 'none'
50
61
  ref?: Ref<EffectComposerImpl>
51
62
  }
52
63
 
@@ -59,11 +70,8 @@ type ComposerState = {
59
70
  const isConvolution = (effect: Effect): boolean =>
60
71
  (effect.getAttributes() & EffectAttribute.CONVOLUTION) === EffectAttribute.CONVOLUTION
61
72
 
62
- /**
63
- * autoClear/toneMapping get force-set and never restored by whoever sets
64
- * them. Ref-counted per (renderer, property) since composers can share a
65
- * renderer; skips restoring if the value already changed since acquire.
66
- */
73
+ // autoClear/toneMapping get force-set and never restored. Ref-counted per
74
+ // (renderer, property) since composers can share a renderer.
67
75
  function createRendererPropertyGuard<K extends 'autoClear' | 'toneMapping'>(property: K) {
68
76
  const refs = new WeakMap<
69
77
  WebGLRenderer,
@@ -97,12 +105,48 @@ function createRendererPropertyGuard<K extends 'autoClear' | 'toneMapping'>(prop
97
105
  const autoClearGuard = /* @__PURE__ */ createRendererPropertyGuard('autoClear')
98
106
  const toneMappingGuard = /* @__PURE__ */ createRendererPropertyGuard('toneMapping')
99
107
 
100
- /**
101
- * Groups a flat, ordered list of Effect/Pass instances into actual composer
102
- * passes, merging consecutive non-convolution Effects into a single
103
- * EffectPass.
104
- */
105
- function buildPasses(nodes: Array<Effect | Pass>, camera: Camera): Pass[] {
108
+ // Scratch vector for gl.getSize() below - written then read synchronously
109
+ // within the same call, never held onto across a render/frame, so sharing
110
+ // one instance across every <EffectComposer> is safe (same reasoning as
111
+ // DEFAULT_SCREEN_RES in LensFlare.tsx: safe because nothing ever aliases it).
112
+ const glSize = /* @__PURE__ */ new Vector2()
113
+
114
+ // Stable identity for the `renderPass` default - it's in the creation
115
+ // effect's dependency array below (changing it recreates the composer,
116
+ // same as depthBuffer/multisampling), so a fresh arrow function every
117
+ // render here would recreate the composer on every render too.
118
+ const defaultRenderPass = (scene: Scene, camera: Camera): Pass => new RenderPass(scene, camera)
119
+
120
+ // Only passes buildPasses itself constructs - not a user's own bare Pass,
121
+ // which owns its own lifecycle.
122
+ const generatedPasses = /* @__PURE__ */ new WeakSet<Pass>()
123
+
124
+ // EffectGroup registers its pass here (see EffectGroup.tsx) so the rebuild
125
+ // effect below knows to add a shared trailing CopyPass.
126
+ export const groupPasses = /* @__PURE__ */ new WeakSet<Pass>()
127
+
128
+ // Not pass.dispose() - EffectPass.dispose() also disposes the effects it
129
+ // wraps, which have their own lifecycle. setEffects([]) detaches them first.
130
+ export function disposePassWithoutEffects(pass: Pass): void {
131
+ if (pass instanceof EffectPass) {
132
+ ;(pass as unknown as { setEffects(effects: never[]): void }).setEffects([])
133
+ }
134
+ Pass.prototype.dispose.call(pass)
135
+ }
136
+
137
+ function disposeGeneratedPass(pass: Pass): void {
138
+ if (!generatedPasses.has(pass)) return
139
+ disposePassWithoutEffects(pass)
140
+ }
141
+
142
+ // 'auto' (default): consecutive Effects share one EffectPass, same as vanilla
143
+ // postprocessing allows by hand - a run may contain at most one convolution
144
+ // Effect (e.g. DepthOfField), since the library throws if two land in the
145
+ // same pass. 'all' merges through that limit too, same no-guardrail
146
+ // treatment EffectGroup already gives its own children - multiple
147
+ // convolution Effects in one run will throw at render time. 'none' gives
148
+ // every Effect its own EffectPass.
149
+ function buildPasses(nodes: Array<Effect | Pass>, camera: Camera, mergeMode: 'auto' | 'all' | 'none'): Pass[] {
106
150
  const passes: Pass[] = []
107
151
 
108
152
  for (let i = 0; i < nodes.length; i++) {
@@ -110,17 +154,22 @@ function buildPasses(nodes: Array<Effect | Pass>, camera: Camera): Pass[] {
110
154
 
111
155
  if (node instanceof Effect) {
112
156
  const effects: Effect[] = [node]
157
+ let hasConvolution = isConvolution(node)
113
158
 
114
- if (!isConvolution(node)) {
159
+ if (mergeMode !== 'none') {
115
160
  let next: Effect | Pass | undefined
116
161
  while ((next = nodes[i + 1]) instanceof Effect) {
117
- if (isConvolution(next)) break
162
+ const nextIsConvolution = isConvolution(next)
163
+ if (mergeMode === 'auto' && hasConvolution && nextIsConvolution) break
118
164
  effects.push(next)
165
+ hasConvolution ||= nextIsConvolution
119
166
  i++
120
167
  }
121
168
  }
122
169
 
123
- passes.push(new EffectPass(camera, ...effects))
170
+ const pass = new EffectPass(camera, ...effects)
171
+ generatedPasses.add(pass)
172
+ passes.push(pass)
124
173
  } else if (node instanceof Pass) {
125
174
  passes.push(node)
126
175
  }
@@ -137,27 +186,35 @@ export const EffectComposer = /* @__PURE__ */ memo(function EffectComposer({
137
186
  enabled = true,
138
187
  renderPriority = 1,
139
188
  autoClear = true,
189
+ autoRenderToScreen = true,
140
190
  depthBuffer,
141
191
  enableNormalPass,
142
192
  stencilBuffer,
143
193
  multisampling = 8,
144
194
  frameBufferType = HalfFloatType,
195
+ renderPass = defaultRenderPass,
196
+ mergeMode = 'auto',
145
197
  ref,
146
198
  }: EffectComposerProps) {
147
- const { gl, scene: defaultScene, camera: defaultCamera, size } = useThree()
199
+ const { gl, scene: defaultScene, camera: defaultCamera } = useThree()
148
200
  const scene = _scene || defaultScene
149
201
  const camera = _camera || defaultCamera
150
202
 
151
- // EffectComposer owns WebGL resources, so it must be created and
152
- // disposed inside an effect lifecycle. useMemo is not suitable here
153
- // because React may discard memoized values without running cleanup.
203
+ gl.getSize(glSize)
204
+
205
+ // useMemo can't own WebGL resources - React may discard it without cleanup.
154
206
  const [composerState, setComposerState] = useState<ComposerState | null>(null)
155
207
 
208
+ // Dispatch is stable across renders, so it never destabilizes `state` below.
209
+ const [, requestRebuild] = useReducer((c: number) => c + 1, 0)
210
+
156
211
  useEffect(() => {
157
212
  autoClearGuard.acquire(gl, false)
158
213
 
159
214
  const effectComposer = new EffectComposerImpl(gl, { depthBuffer, stencilBuffer, multisampling, frameBufferType })
160
- effectComposer.addPass(new RenderPass(scene, camera))
215
+
216
+ effectComposer.autoRenderToScreen = autoRenderToScreen
217
+ effectComposer.addPass(renderPass(scene, camera))
161
218
 
162
219
  let normalPass: NormalPass | null = null
163
220
  let downSamplingPass: DepthDownsamplingPass | null = null
@@ -174,27 +231,51 @@ export const EffectComposer = /* @__PURE__ */ memo(function EffectComposer({
174
231
  }
175
232
  }
176
233
 
177
- effectComposer.setSize(size.width, size.height)
234
+ effectComposer.setSize(glSize.width, glSize.height)
178
235
 
179
236
  setComposerState({ composer: effectComposer, normalPass, downSamplingPass })
180
237
 
181
238
  return () => {
239
+ // The rebuild effect below may not have detached its passes yet
240
+ // (composerState only updates next render) - without this, dispose()
241
+ // would kill effects the new composer is about to reuse.
242
+ for (const pass of effectComposer.passes) disposeGeneratedPass(pass)
182
243
  effectComposer.dispose()
183
244
  autoClearGuard.release(gl)
184
245
  }
185
- // `size` intentionally excluded: it's applied via the composer.setSize
246
+ // `glSize` intentionally excluded: it's applied via the composer.setSize
186
247
  // effect below, and shouldn't tear down/recreate the whole composer.
187
248
  // eslint-disable-next-line react-hooks/exhaustive-deps
188
- }, [camera, gl, depthBuffer, stencilBuffer, multisampling, frameBufferType, scene, enableNormalPass, resolutionScale])
189
-
190
- useEffect(() => {
191
- composerState?.composer.setSize(size.width, size.height)
192
- }, [composerState, size])
249
+ }, [
250
+ camera,
251
+ gl,
252
+ depthBuffer,
253
+ stencilBuffer,
254
+ multisampling,
255
+ frameBufferType,
256
+ autoRenderToScreen,
257
+ renderPass,
258
+ scene,
259
+ enableNormalPass,
260
+ resolutionScale,
261
+ ])
262
+
263
+ // Last size actually applied to the composer, so the check below is a
264
+ // cheap no-op on frames where nothing changed.
265
+ const appliedSizeRef = useRef({ width: -1, height: -1 })
193
266
 
194
267
  useFrame(
195
268
  (_, delta) => {
196
269
  if (!enabled || !composerState) return
197
270
  const { composer } = composerState
271
+
272
+ gl.getSize(glSize)
273
+ if (glSize.width !== appliedSizeRef.current.width || glSize.height !== appliedSizeRef.current.height) {
274
+ composer.setSize(glSize.width, glSize.height)
275
+ appliedSizeRef.current.width = glSize.width
276
+ appliedSizeRef.current.height = glSize.height
277
+ }
278
+
198
279
  const currentAutoClear = gl.autoClear
199
280
  gl.autoClear = autoClear
200
281
  if (stencilBuffer && !autoClear) gl.clearStencil()
@@ -204,24 +285,39 @@ export const EffectComposer = /* @__PURE__ */ memo(function EffectComposer({
204
285
  enabled ? renderPriority : 0
205
286
  )
206
287
 
207
- // Passes are derived from the actual r3f scene graph rather than tracked
208
- // incrementally, so the list always matches current JSX order — including
209
- // through wrapper components — even after a reorder or a remount.
288
+ // Derived from the r3f scene graph (not tracked incrementally) so order
289
+ // always matches JSX, even through wrapper components or a reorder.
210
290
  const group = useRef<Group>(null!)
291
+ const nodesRef = useRef<Array<Effect | Pass>>([])
292
+ const [nodesVersion, setNodesVersion] = useState(0)
211
293
 
294
+ // Runs every render, but only bumps nodesVersion (triggering the rebuild
295
+ // below) when the resolved node list actually changed.
296
+ useLayoutEffect(() => {
297
+ if (!composerState) return
298
+ const nodes = readGroupChildren(
299
+ group.current,
300
+ (object): object is Effect | Pass => object instanceof Effect || object instanceof Pass
301
+ )
302
+ if (updateIfChanged(nodesRef, nodes)) setNodesVersion((v) => v + 1)
303
+ })
304
+
305
+ // Only re-runs when nodesVersion/composerState/camera change - React's
306
+ // own dependency bailout, so create/cleanup pairing stays correct.
212
307
  useLayoutEffect(() => {
213
308
  if (!composerState) return
214
309
  const { composer, normalPass, downSamplingPass } = composerState
215
310
 
216
- const passes: Pass[] = []
217
- const groupInstance = (group.current as Group & { __r3f: Instance<Group> }).__r3f
311
+ const passes = buildPasses(nodesRef.current, camera, mergeMode)
218
312
 
219
- if (groupInstance) {
220
- const nodes = groupInstance.children.map((child) => child.object).filter(
221
- (object): object is Effect | Pass => object instanceof Effect || object instanceof Pass
222
- )
223
-
224
- passes.push(...buildPasses(nodes, camera))
313
+ // A toggleable pass (EffectGroup) sitting last would leave nothing on
314
+ // screen once disabled - postprocessing assigns renderToScreen by
315
+ // structural position, not `.enabled`. A shared trailing CopyPass
316
+ // (always enabled, always added last) fixes that for the whole chain.
317
+ if (passes.some((pass) => groupPasses.has(pass))) {
318
+ const trailingCopyPass = new CopyPass()
319
+ generatedPasses.add(trailingCopyPass)
320
+ passes.push(trailingCopyPass)
225
321
  }
226
322
 
227
323
  for (const pass of passes) composer.addPass(pass)
@@ -232,11 +328,14 @@ export const EffectComposer = /* @__PURE__ */ memo(function EffectComposer({
232
328
  }
233
329
 
234
330
  return () => {
235
- for (const pass of passes) composer.removePass(pass)
331
+ for (const pass of passes) {
332
+ composer.removePass(pass)
333
+ disposeGeneratedPass(pass)
334
+ }
236
335
  if (normalPass) normalPass.enabled = false
237
336
  if (downSamplingPass) downSamplingPass.enabled = false
238
337
  }
239
- }, [composerState, children, camera])
338
+ }, [composerState, nodesVersion, camera, mergeMode])
240
339
 
241
340
  // Disable tone mapping because threejs disallows tonemapping on render targets
242
341
  useEffect(() => {
@@ -258,9 +357,11 @@ export const EffectComposer = /* @__PURE__ */ memo(function EffectComposer({
258
357
  resolutionScale,
259
358
  camera,
260
359
  scene,
360
+ requestRebuild,
361
+ autoClear,
261
362
  }
262
363
  : null,
263
- [composerState, resolutionScale, camera, scene]
364
+ [composerState, resolutionScale, camera, scene, requestRebuild, autoClear]
264
365
  )
265
366
 
266
367
  // Expose the composer
@@ -0,0 +1,74 @@
1
+ import { Effect, EffectPass } from 'postprocessing'
2
+ import { use, useImperativeHandle, useLayoutEffect, useRef, useState, type ReactNode, type Ref } from 'react'
3
+ import type { Group } from 'three'
4
+ import { disposePassWithoutEffects, EffectComposerContext, groupPasses } from './EffectComposer'
5
+ import { readGroupChildren, updateIfChanged } from './util'
6
+
7
+ export type EffectGroupProps = {
8
+ /** Toggles the whole pass, like Pass.enabled in vanilla postprocessing - cheap, no reconstruction. */
9
+ enabled?: boolean
10
+ children: ReactNode
11
+ ref?: Ref<EffectPass>
12
+ }
13
+
14
+ // Groups its children into one EffectPass instead of relying on
15
+ // EffectComposer's automatic consecutive-effect merging. Renders children
16
+ // into a hidden inner <group> (invisible to EffectComposer's own top-level
17
+ // walk) and renders the resulting pass back out via <primitive> at this
18
+ // component's own JSX position, so EffectComposer's existing bare-Pass
19
+ // passthrough places it correctly relative to sibling effects.
20
+ export function EffectGroup({ enabled = true, children, ref }: EffectGroupProps) {
21
+ const { camera, requestRebuild } = use(EffectComposerContext)
22
+
23
+ const group = useRef<Group>(null!)
24
+ const effectsRef = useRef<Effect[]>([])
25
+ const [pass, setPass] = useState<EffectPass | null>(null)
26
+
27
+ // Mirrors EffectComposer's own buildPasses: always constructs a fresh
28
+ // EffectPass when the effect list changes, rather than updating one in
29
+ // place - so composer.addPass() runs its normal setSize/initialize dance
30
+ // for every effect, with nothing to replicate by hand here.
31
+ useLayoutEffect(() => {
32
+ const effects = readGroupChildren(group.current, (object): object is Effect => object instanceof Effect)
33
+ if (!updateIfChanged(effectsRef, effects)) return
34
+
35
+ if (!effects.length) {
36
+ setPass(null)
37
+ return
38
+ }
39
+
40
+ const newPass = new EffectPass(camera, ...effects)
41
+ groupPasses.add(newPass)
42
+ setPass(newPass)
43
+ })
44
+
45
+ // useLayoutEffect (not useEffect) so `enabled` is applied before
46
+ // EffectComposer's own effect adds this pass to the composer.
47
+ useLayoutEffect(() => {
48
+ if (pass) pass.enabled = enabled
49
+ }, [pass, enabled])
50
+
51
+ // A local state update above doesn't re-render EffectComposer, so its own
52
+ // tree walk would never notice this pass appearing/disappearing.
53
+ useLayoutEffect(() => {
54
+ requestRebuild()
55
+ }, [pass, requestRebuild])
56
+
57
+ // Disposes whichever pass this replaces (or the last one, on unmount) -
58
+ // the only place a pass gets disposed, so there's no double-dispose risk
59
+ // from also doing it inline above where `pass` is replaced.
60
+ useLayoutEffect(() => {
61
+ return () => {
62
+ if (pass) disposePassWithoutEffects(pass)
63
+ }
64
+ }, [pass])
65
+
66
+ useImperativeHandle(ref, () => pass as EffectPass, [pass])
67
+
68
+ return (
69
+ <>
70
+ <group ref={group}>{children}</group>
71
+ {pass && <primitive object={pass} />}
72
+ </>
73
+ )
74
+ }