浏览代码

WebGLRenderer: set material.needsUpdate true when scene.environment changes.

Mr.doob 5 年之前
父节点
当前提交
087546d2f6
共有 1 个文件被更改,包括 5 次插入0 次删除
  1. 5 0
      src/renderers/WebGLRenderer.js

+ 5 - 0
src/renderers/WebGLRenderer.js

@@ -1566,6 +1566,7 @@ function WebGLRenderer( parameters ) {
 			program = programCache.acquireProgram( material, materialProperties.shader, parameters, programCacheKey );
 
 			materialProperties.program = program;
+			materialProperties.environment = material.isMeshStandardMaterial ? scene.environment : null;
 			materialProperties.outputEncoding = _this.outputEncoding;
 			material.program = program;
 
@@ -1693,6 +1694,10 @@ function WebGLRenderer( parameters ) {
 
 				material.needsUpdate = true;
 
+			} else if ( materialProperties.environment !== environment ) {
+
+				material.needsUpdate = true;
+
 			} else if ( materialProperties.needsLights && ( materialProperties.lightsStateVersion !== lights.state.version ) ) {
 
 				material.needsUpdate = true;