소스 검색

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

Mr.doob 10 년 전
부모
커밋
41a173c660
1개의 변경된 파일4개의 추가작업 그리고 2개의 파일을 삭제
  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 );