chore(deps): update dependency @react-three/postprocessing to v3.1.1 - #262
Open
renovate[bot] wants to merge 1 commit into
Open
chore(deps): update dependency @react-three/postprocessing to v3.1.1#262renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
nicolasfara
force-pushed
the
renovate/react-three-postprocessing-3.x-lockfile
branch
from
August 27, 2026 00:58
a3fcdf2 to
93e885a
Compare
renovate
Bot
force-pushed
the
renovate/react-three-postprocessing-3.x-lockfile
branch
from
August 27, 2026 00:59
93e885a to
7ae52d9
Compare
nicolasfara
force-pushed
the
renovate/react-three-postprocessing-3.x-lockfile
branch
from
August 27, 2026 01:01
7ae52d9 to
fdcb3c0
Compare
renovate
Bot
force-pushed
the
renovate/react-three-postprocessing-3.x-lockfile
branch
from
August 27, 2026 01:02
fdcb3c0 to
68e4a8b
Compare
nicolasfara
force-pushed
the
renovate/react-three-postprocessing-3.x-lockfile
branch
from
August 27, 2026 21:39
68e4a8b to
6782f01
Compare
renovate
Bot
force-pushed
the
renovate/react-three-postprocessing-3.x-lockfile
branch
from
August 27, 2026 21:40
6782f01 to
e2cf87a
Compare
nicolasfara
force-pushed
the
renovate/react-three-postprocessing-3.x-lockfile
branch
from
August 29, 2026 08:41
e2cf87a to
e97145e
Compare
renovate
Bot
force-pushed
the
renovate/react-three-postprocessing-3.x-lockfile
branch
2 times, most recently
from
August 30, 2026 18:45
4fb4c00 to
f64a5cf
Compare
renovate
Bot
force-pushed
the
renovate/react-three-postprocessing-3.x-lockfile
branch
from
August 30, 2026 18:50
f64a5cf to
b40863a
Compare
nicolasfara
force-pushed
the
renovate/react-three-postprocessing-3.x-lockfile
branch
from
August 31, 2026 06:13
b40863a to
83c7dc8
Compare
renovate
Bot
force-pushed
the
renovate/react-three-postprocessing-3.x-lockfile
branch
from
August 31, 2026 06:14
83c7dc8 to
390f8d6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
3.0.4→3.1.1Release Notes
pmndrs/react-postprocessing (@react-three/postprocessing)
v3.1.1Compare Source
Patch release focused purely on compatibility - no behavior changes.
It loosens peerDependencies that were accidentally over-constrained in 3.1.0.
What's Changed
Full Changelog: pmndrs/react-postprocessing@v3.1.0...v3.1.1
v3.1.0Compare Source
This release is an internal rewrite of how effects apply prop changes - most of it is invisible unless you hit one of the bugs it fixes, but it puts every effect on the same reliable, live-updating foundation instead of each one reconstructing itself in ad hoc ways.
Added
EffectPasswith its own cheapenabledtoggle, backed by a shared trailingCopyPassso disabling the last pass in a chain doesn't blank the canvas.<Autofocus>into a reusable, standalone primitive.<DepthPicking>just mounts the vanillaDepthPickingPassand exposesreadDepthvia ref - renders nothing, updates nothing automatically.useDepthPickingturns a screen position into a world-space point on demand, auto-detecting the composer's own camera when used inside its<EffectComposer>, with an explicitcameraoverride for calling it from outside that tree.<Autofocus>is now built on both internally, same external behavior.autoRenderToScreen?: booleanprop (defaulttrue) - construction-time option, same treatment asdepthBuffer/multisampling.renderPass?: (scene, camera) => Passprop - lets consumers supply their own scene/camera render passmergeMode?: 'auto' | 'all' | 'none'prop (default'auto').'auto'merges effects into as fewEffectPasses as possible while keeping at most one convolution effect per pass - matching whatpostprocessingitself actually allows. This is strictly better than the old unconditional "any convolution effect gets fully isolated" behavior.'all'drops that safety limit entirely.'none'gives every effect its own pass.postprocessingeffect classes the same way this library's own simple effects do.enabledprop, wired into the same shared trailing-CopyPasssafety net asEffectGroup(N8AO isn't a mergeablepostprocessingEffect, so it needed its own toggle rather than going throughEffectGroupdirectly).opacitynow works - these never went throughwrapEffect(the only place that handled it) before, so it was silently inert regardless of what the (missing) types suggested.<EffectComposer autoClear={false}>- both render an internal extra pass that silently produces wrong output (outlines don't render at all; GodRays occlusion looks wrong) without it.visibleEdgeColor/hiddenEdgeColornow typed asColorRepresentation(number | string | Color) instead of justnumber- the runtime already wrapped values innew Color(value), so string colors ("red", "#ff0000", etc.) always worked, the type just didn't say so.lensPosition/positionnow acceptReactThreeFiber.Vector3(a tuple or a single number, not just aVector3instance), matching how position props work everywhere else in the r3f ecosystem.Changed
postprocessingclass can be constructed with zero arguments are now built oncreateEffectComponent: live props update the existing effect instance in place instead of reconstructing it on every change, and arefnow points to one stable instance across prop updates instead of a new one every render.createEffectComponentsimilarly apply live props throughuseLiveDefaultsinstead of reconstructing the whole effect on every change.resolutionScalenow falls back to the parent<EffectComposer>'s ownresolutionScaleprop when not set directly on<SSAO>, instead of always defaulting straight to1.distis no longer minified - the consumer's own bundler minifies anyway in a real production build, and this keeps stack traces/devtools readable when debugging into the library.Fixed
useMemoonly depended on[camera, downSamplingPass, normalPass, resolutionScale], and props were never re-applied to the effect any other way. Changingcolor,intensity,radius,samples,worldProximityThreshold/worldProximityFalloff, or anything else did nothing until one of those four values happened to change too. Now applies live viauseLiveDefaults.depthTexturereconstructed the whole effect - render targets and passes included - despiteDepthOfFieldEffect.setDepthTexture()existing specifically to update an existing instance in place. Now applied live.qualitychanges mutateeffect.configurationdirectly (a plain object outside r3f's reconciler) without ever callinginvalidate(), so changes didn't repaint under<Canvas frameloop="demand">.size, which drei's<View>overrides per-portal only onView's own re-renders - not kept live - so a composer nested in a<View>could go arbitrarily long without picking up a resize (in practice: staying offset/wrong-sized indefinitely). Now readsgl.getSize()directly instead, which isn't portal-scoped and can't be missed regardless of whether the component itself ever re-renders.Removed
blendFunction/opacityprops removed entirely. Both aremainUv-only shaders (nomainImage, verified againstpostprocessing's own pass-composition logic) - there's no color output to blend, so the props never did anything; they're gone rather than wired up. If you were passing either to<Pixelation>/<ShockWave>, remove them - they were already silent no-ops.What's Changed
New Contributors
Full Changelog: pmndrs/react-postprocessing@v3.0.5...v3.1.0
v3.0.5Compare Source
Fixed
useMemo, which React may discard without running cleanup. Creation moved into a proper effect lifecycle instead. (#353) by @kvvasuurenderer.autoClearandrenderer.toneMappingwere force-set and never restored. They're now restored on unmount. (#358) by @kvvasuuwrapEffectonto a manual construct/dispose pattern so the tupleoffsetprop is correctly coerced. (#355) by @kvvasuuSelect's effect depending on its own write; it now diffs newly-claimed/released objects against what it previously claimed instead of clearing and re-adding unconditionally. (#359) by @kvvasuuMesh/Line/Pointssubclasses (isMesh/isLine/isPoints), not just an exacttype === 'Mesh'check - custom mesh subclasses are now selectable. (#359) by @kvvasuuaddLight/removeLighton a null object. (#360) by @kvvasuuuseSelectionSynchook, which also stops the selection effect from re-running on every render (it previously depended on an unstable spreadpropsobject). (#360) by @kvvasuupatternScale,multisampling,resolutionScale,resolutionX,resolutionYare now wired up as live constructor options. (#360) by @kvvasuuradius,levels,resolutionScale,resolutionX,resolutionYare now wired up as live constructor options. (#360) by @kvvasuu<primitive>-based effects now dispose themselves (newuseDisposehook). (#355) by @kvvasuubugs/homepagefields). (#347) by @2lll5Changed
wrapEffectsplit out ofutil.tsxinto its own module; Effect components droppedforwardRefin favor ofrefas a plain, optional prop. (#352) by @kvvasuu@react-three/fiberpeer floor raised to>=9.7.0. (#353) by @kvvasuupostprocessingmoved from a pinneddependenciesentry to apeerDependenciesrange (^6.36.0);threepeer floor raised to>= 0.182.0. (#351) by @kvvasuuAdded
master, by @krispyaNew Contributors
Full Changelog: pmndrs/react-postprocessing@v3.0.4...v3.0.5
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.