Browse Source

WebGLBackground: scale boxMesh to camera.far. See e908eeea116dc67341b849c5036608fdcce3ba58

Mr.doob 8 years ago
parent
commit
49359a14d7
2 changed files with 9 additions and 6 deletions
  1. 6 6
      src/renderers/webgl/WebGLBackground.js
  2. 3 0
      src/renderers/webvr/WebVRManager.js

+ 6 - 6
src/renderers/webgl/WebGLBackground.js

@@ -49,13 +49,13 @@ function WebGLBackground( renderer, state, geometries, premultipliedAlpha ) {
 				// TODO Adjust skybox to camera somehow
 
 				boxMesh = new Mesh(
-					new BoxBufferGeometry( 5, 5, 5 ),
+					new BoxBufferGeometry( 2, 2, 2 ),
 					new ShaderMaterial( {
 						uniforms: ShaderLib.cube.uniforms,
 						vertexShader: ShaderLib.cube.vertexShader,
 						fragmentShader: ShaderLib.cube.fragmentShader,
 						side: BackSide,
-						depthTest: false,
+						depthTest: true,
 						depthWrite: false,
 						fog: false
 					} )
@@ -66,13 +66,13 @@ function WebGLBackground( renderer, state, geometries, premultipliedAlpha ) {
 			}
 
 			boxMesh.material.uniforms.tCube.value = background;
-			boxMesh.matrixWorld.copyPosition( camera.matrixWorld );
 
-			renderList.push( boxMesh, boxMesh.geometry, boxMesh.material, 0, null );
+			var scale = camera.far / 1.732; // distance from 0,0,0 to 1,1,1
 
-			// TOFIX Ideally background should be rendered last
+			boxMesh.matrixWorld.makeScale( scale, scale, scale );
+			boxMesh.matrixWorld.copyPosition( camera.matrixWorld );
 
-			renderList.opaque.unshift( renderList.opaque.pop() ); // Hack to make sure background gets rendered first
+			renderList.push( boxMesh, boxMesh.geometry, boxMesh.material, 0, null );
 
 		} else if ( background && background.isTexture ) {
 

+ 3 - 0
src/renderers/webvr/WebVRManager.js

@@ -128,6 +128,9 @@ function WebVRManager( renderer ) {
 
 		//
 
+		cameraVR.near = camera.near;
+		cameraVR.far = camera.far;
+
 		cameraVR.matrixWorld.copy( camera.matrixWorld );
 		cameraVR.matrixWorldInverse.copy( camera.matrixWorldInverse );