Skip to content

Commit 6208714

Browse files
gkjohnsonMugen87
andauthored
WebGLRenderer: Fix incorrect background color space when setting scene.background to color (#28434)
* ensure the transmission buffer is assigned a color space, render scene background color * Update screenshot * Reuse "renderBackground" flag * Update WebGLRenderer.js Clean up. --------- Co-authored-by: Michael Herzog <[email protected]>
1 parent aa65ec2 commit 6208714

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed
-43 Bytes
Loading

src/renderers/WebGLRenderer.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,8 @@ class WebGLRenderer {
206206

207207
const _emptyScene = { background: null, fog: null, environment: null, overrideMaterial: null, isScene: true };
208208

209+
let _renderBackground = false;
210+
209211
function getTargetPixelRatio() {
210212

211213
return _currentRenderTarget === null ? _pixelRatio : 1;
@@ -1153,8 +1155,8 @@ class WebGLRenderer {
11531155

11541156
}
11551157

1156-
const renderBackground = xr.enabled === false || xr.isPresenting === false || xr.hasDepthSensing() === false;
1157-
if ( renderBackground ) {
1158+
_renderBackground = xr.enabled === false || xr.isPresenting === false || xr.hasDepthSensing() === false;
1159+
if ( _renderBackground ) {
11581160

11591161
background.addToRenderList( currentRenderList, scene );
11601162

@@ -1199,7 +1201,7 @@ class WebGLRenderer {
11991201

12001202
}
12011203

1202-
if ( renderBackground ) background.render( scene );
1204+
if ( _renderBackground ) background.render( scene );
12031205

12041206
for ( let i = 0, l = cameras.length; i < l; i ++ ) {
12051207

@@ -1213,7 +1215,7 @@ class WebGLRenderer {
12131215

12141216
if ( transmissiveObjects.length > 0 ) renderTransmissionPass( opaqueObjects, transmissiveObjects, scene, camera );
12151217

1216-
if ( renderBackground ) background.render( scene );
1218+
if ( _renderBackground ) background.render( scene );
12171219

12181220
renderScene( currentRenderList, scene, camera );
12191221

@@ -1430,7 +1432,8 @@ class WebGLRenderer {
14301432
samples: 4,
14311433
stencilBuffer: stencil,
14321434
resolveDepthBuffer: false,
1433-
resolveStencilBuffer: false
1435+
resolveStencilBuffer: false,
1436+
colorSpace: ColorManagement.workingColorSpace,
14341437
} );
14351438

14361439
// debug
@@ -1461,6 +1464,8 @@ class WebGLRenderer {
14611464

14621465
_this.clear();
14631466

1467+
if ( _renderBackground ) background.render( scene );
1468+
14641469
// Turn off the features which can affect the frag color for opaque objects pass.
14651470
// Otherwise they are applied twice in opaque objects pass and transmission objects pass.
14661471
const currentToneMapping = _this.toneMapping;

0 commit comments

Comments
 (0)