浏览代码

WebGLRenderer: invalidate materials on async instanceColor set (#26430)

* WebGLRenderer: invalidate materials on async instanceColor set

* WebGLRenderer: cleanup
Cody Bennett 2 年之前
父节点
当前提交
b8a2003633
共有 1 个文件被更改,包括 9 次插入0 次删除
  1. 9 0
      src/renderers/WebGLRenderer.js

+ 9 - 0
src/renderers/WebGLRenderer.js

@@ -1601,6 +1601,7 @@ class WebGLRenderer {
 
 
 			materialProperties.outputColorSpace = parameters.outputColorSpace;
 			materialProperties.outputColorSpace = parameters.outputColorSpace;
 			materialProperties.instancing = parameters.instancing;
 			materialProperties.instancing = parameters.instancing;
+			materialProperties.instancingColor = parameters.instancingColor;
 			materialProperties.skinning = parameters.skinning;
 			materialProperties.skinning = parameters.skinning;
 			materialProperties.morphTargets = parameters.morphTargets;
 			materialProperties.morphTargets = parameters.morphTargets;
 			materialProperties.morphNormals = parameters.morphNormals;
 			materialProperties.morphNormals = parameters.morphNormals;
@@ -1695,6 +1696,14 @@ class WebGLRenderer {
 
 
 					needsProgramChange = true;
 					needsProgramChange = true;
 
 
+				} else if ( object.isInstancedMesh && materialProperties.instancingColor === true && object.instanceColor === null ) {
+
+					needsProgramChange = true;
+
+				} else if ( object.isInstancedMesh && materialProperties.instancingColor === false && object.instanceColor !== null ) {
+
+					needsProgramChange = true;
+
 				} else if ( materialProperties.envMap !== envMap ) {
 				} else if ( materialProperties.envMap !== envMap ) {
 
 
 					needsProgramChange = true;
 					needsProgramChange = true;