From 24d829ce0d9948aa29e324e46dac2698c67722ad Mon Sep 17 00:00:00 2001 From: Mugen87 Date: Fri, 17 Jan 2025 17:05:11 +0100 Subject: [PATCH 1/2] XRManager: Fix background clear in XR. --- src/renderers/common/Background.js | 14 ++++++++++++++ src/renderers/common/XRManager.js | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/renderers/common/Background.js b/src/renderers/common/Background.js index 97092b3b5a4608..6567b6a326b9e4 100644 --- a/src/renderers/common/Background.js +++ b/src/renderers/common/Background.js @@ -142,6 +142,20 @@ class Background extends DataMap { // + const environmentBlendMode = renderer.xr.getEnvironmentBlendMode(); + + if ( environmentBlendMode === 'additive' ) { + + _clearColor.set( 0, 0, 0, 1 ); + + } else if ( environmentBlendMode === 'alpha-blend' ) { + + _clearColor.set( 0, 0, 0, 0 ); + + } + + // + if ( renderer.autoClear === true || forceClear === true ) { const clearColorValue = renderContext.clearColorValue; diff --git a/src/renderers/common/XRManager.js b/src/renderers/common/XRManager.js index a46d9e214c5bfc..137c950f73818d 100644 --- a/src/renderers/common/XRManager.js +++ b/src/renderers/common/XRManager.js @@ -475,7 +475,7 @@ class XRManager extends EventDispatcher { /** * Returns the environment blend mode from the current XR session. * - * @return {'opaque'|'additive'|'alpha-blend'} The environment blend mode. + * @return {('opaque'|'additive'|'alpha-blend')?} The environment blend mode. Returns `null` when used outside of a XR session. */ getEnvironmentBlendMode() { From 3fae89f85720c302988475eeac4d4543bfbe2f95 Mon Sep 17 00:00:00 2001 From: Mugen87 Date: Fri, 17 Jan 2025 17:15:51 +0100 Subject: [PATCH 2/2] Renderer: Update background even in XR. --- src/renderers/common/Renderer.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/renderers/common/Renderer.js b/src/renderers/common/Renderer.js index e91ea9835901af..62f9acec69fb3b 100644 --- a/src/renderers/common/Renderer.js +++ b/src/renderers/common/Renderer.js @@ -1350,11 +1350,7 @@ class Renderer { // - if ( xr.enabled === false || xr.isPresenting === false ) { - - this._background.update( sceneRef, renderList, renderContext ); - - } + this._background.update( sceneRef, renderList, renderContext ); //