Browse Source

WebGLRenderer: setMaterial() does setBlending( THREE.NoBlending ) if needed. See #5940.

Mr.doob 10 years ago
parent
commit
41a173c660
1 changed files with 4 additions and 2 deletions
  1. 4 2
      src/renderers/WebGLRenderer.js

+ 4 - 2
src/renderers/WebGLRenderer.js

@@ -3386,8 +3386,6 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 			var overrideMaterial = scene.overrideMaterial;
 
-			// Reset blending in case material.transparent = false. setMaterial() doesn't set blending in such case.
-			state.setBlending( THREE.NoBlending );
 			setMaterial( overrideMaterial );
 
 			renderObjects( opaqueObjects, camera, lights, fog, overrideMaterial );
@@ -4332,6 +4330,10 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 			state.setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha );
 
+		} else {
+
+			state.setBlending( THREE.NoBlending );
+
 		}
 
 		state.setDepthTest( material.depthTest );