浏览代码

WebGLBackground: Use polygonOffset to push background away.

Mr.doob 8 年之前
父节点
当前提交
f1ae264846
共有 2 个文件被更改,包括 6 次插入4 次删除
  1. 2 0
      src/renderers/WebGLRenderer.js
  2. 4 4
      src/renderers/webgl/WebGLBackground.js

+ 2 - 0
src/renderers/WebGLRenderer.js

@@ -1142,6 +1142,8 @@ function WebGLRenderer( parameters ) {
 		state.buffers.depth.setMask( true );
 		state.buffers.color.setMask( true );
 
+		state.setPolygonOffset( false );
+
 		if ( vr.enabled ) {
 
 			vr.submitFrame();

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

@@ -46,11 +46,8 @@ function WebGLBackground( renderer, state, geometries, premultipliedAlpha ) {
 
 			if ( boxMesh === undefined ) {
 
-				// Normalized box
-				// 1.1547 = (1,1,1).normalize() * 2.0
-
 				boxMesh = new Mesh(
-					new BoxBufferGeometry( 1.1547, 1.1547, 1.1547 ),
+					new BoxBufferGeometry( 1, 1, 1 ),
 					new ShaderMaterial( {
 						uniforms: ShaderLib.cube.uniforms,
 						vertexShader: ShaderLib.cube.vertexShader,
@@ -58,6 +55,7 @@ function WebGLBackground( renderer, state, geometries, premultipliedAlpha ) {
 						side: BackSide,
 						depthTest: true,
 						depthWrite: false,
+						polygonOffset: true,
 						fog: false
 					} )
 				);
@@ -72,6 +70,8 @@ function WebGLBackground( renderer, state, geometries, premultipliedAlpha ) {
 					this.matrixWorld.makeScale( scale, scale, scale );
 					this.matrixWorld.copyPosition( camera.matrixWorld );
 
+					this.material.polygonOffsetUnits = scale * 10;
+
 				};
 
 				geometries.update( boxMesh.geometry );