From fb130ffd0f0f4a17c320c4290b9be6bcb326f3c5 Mon Sep 17 00:00:00 2001 From: WestLangley Date: Mon, 14 Jul 2025 09:03:33 -0400 Subject: [PATCH 1/3] Auto-correct projection matrix --- src/renderers/WebGLRenderer.js | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index 46ed2ce6f0adee..e944a77f827e97 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -2384,22 +2384,13 @@ class WebGLRenderer { if ( reverseDepthBuffer && camera.reversedDepth !== true ) { - // @deprecated, r179 - warnOnce( 'THREE.WebGLRenderer: reverseDepthBuffer must be used with "camera.reversedDepth = true;" for correct results. Automatic conversion will be removed in r189.' ); - - _currentProjectionMatrix.copy( camera.projectionMatrix ); - - toNormalizedProjectionMatrix( _currentProjectionMatrix ); - toReversedProjectionMatrix( _currentProjectionMatrix ); - - p_uniforms.setValue( _gl, 'projectionMatrix', _currentProjectionMatrix ); - - } else { - - p_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix ); + camera.reversedDepth = true; + camera.updateProjectionMatrix(); } + p_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix ); + p_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse ); const uCamPos = p_uniforms.map.cameraPosition; From bb4cdb805e37ba9ad856ced19002467045bb1b80 Mon Sep 17 00:00:00 2001 From: WestLangley Date: Mon, 14 Jul 2025 11:28:50 -0400 Subject: [PATCH 2/3] Auto-correct projection matrix --- src/renderers/WebGLRenderer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index e944a77f827e97..865e2fd1fad0c6 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -52,7 +52,7 @@ import { WebGLUtils } from './webgl/WebGLUtils.js'; import { WebXRManager } from './webxr/WebXRManager.js'; import { WebGLMaterials } from './webgl/WebGLMaterials.js'; import { WebGLUniformsGroups } from './webgl/WebGLUniformsGroups.js'; -import { createCanvasElement, probeAsync, toNormalizedProjectionMatrix, toReversedProjectionMatrix, warnOnce } from '../utils.js'; +import { createCanvasElement, probeAsync, warnOnce } from '../utils.js'; import { ColorManagement } from '../math/ColorManagement.js'; /** From c4478b58bde290743222e08f82946ae821689f02 Mon Sep 17 00:00:00 2001 From: WestLangley Date: Mon, 14 Jul 2025 20:22:57 -0400 Subject: [PATCH 3/3] Auto-correct projection matrix --- src/renderers/WebGLRenderer.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index 865e2fd1fad0c6..012e6ca7cde798 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -313,7 +313,6 @@ class WebGLRenderer { // camera matrices cache - const _currentProjectionMatrix = new Matrix4(); const _projScreenMatrix = new Matrix4(); const _vector3 = new Vector3();