瀏覽代碼

Fix morph target sync issue

David Catuhe 4 年之前
父節點
當前提交
6fe94ed9a1
共有 1 個文件被更改,包括 9 次插入0 次删除
  1. 9 0
      src/Materials/Node/Blocks/Vertex/morphTargetsBlock.ts

+ 9 - 0
src/Materials/Node/Blocks/Vertex/morphTargetsBlock.ts

@@ -146,9 +146,18 @@ export class MorphTargetsBlock extends NodeMaterialBlock {
     }
 
     public prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines) {
+        if ((<Mesh>mesh).morphTargetManager) {
+            const morphTargetManager = (<Mesh>mesh).morphTargetManager;
+            
+            if (morphTargetManager?.isUsingTextureForTargets && morphTargetManager.numInfluencers !== defines["NUM_MORPH_INFLUENCERS"]) {
+                defines.markAsAttributesDirty();
+            }
+        }
+
         if (!defines._areAttributesDirty) {
             return;
         }
+
         MaterialHelper.PrepareDefinesForMorphTargets(mesh, defines);
     }