소스 검색

Merge pull request #8041 from sebavan/master

Fix #8033
sebavan 5 년 전
부모
커밋
a33e51ca27
1개의 변경된 파일8개의 추가작업 그리고 0개의 파일을 삭제
  1. 8 0
      src/Materials/Node/nodeMaterial.ts

+ 8 - 0
src/Materials/Node/nodeMaterial.ts

@@ -757,6 +757,7 @@ export class NodeMaterial extends PushMaterial {
 
         // Need to recompile?
         if (defines.isDirty) {
+            const lightDisposed = defines._areLightsDisposed;
             defines.markAsProcessed();
 
             // Repeatable content generators
@@ -831,6 +832,13 @@ export class NodeMaterial extends PushMaterial {
                 if (this.allowShaderHotSwapping && previousEffect && !effect.isReady()) {
                     effect = previousEffect;
                     defines.markAsUnprocessed();
+
+                    if (lightDisposed) {
+                        // re register in case it takes more than one frame.
+                        defines._areLightsDisposed = true;
+                        return false;
+                    }
+
                 } else {
                     scene.resetCachedMaterial();
                     subMesh.setEffect(effect, defines);