Просмотр исходного кода

GLTFLoader: Skip skinning without skin attributes (#33988)

Co-authored-by: Mugen87 <12612165+Mugen87@users.noreply.github.com>
0b5vr 2 недель назад
Родитель
Сommit
ab12bf3088
1 измененных файлов с 10 добавлено и 1 удалено
  1. 10 1
      examples/jsm/loaders/GLTFLoader.js

+ 10 - 1
examples/jsm/loaders/GLTFLoader.js

@@ -3886,8 +3886,17 @@ class GLTFParser {
 						primitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN ||
 						primitive.mode === undefined ) {
 
+					const needsSkinning = meshDef.isSkinnedMesh === true;
+					const hasSkinningAttributes = geometry.hasAttribute( 'skinIndex' ) && geometry.hasAttribute( 'skinWeight' );
+
+					if ( needsSkinning && hasSkinningAttributes === false ) {
+
+						console.warn( 'THREE.GLTFLoader: Missing skinIndex or skinWeight attributes. Skinning disabled.' );
+
+					}
+
 					// .isSkinnedMesh isn't in glTF spec. See ._markDefs()
-					mesh = meshDef.isSkinnedMesh === true
+					mesh = ( needsSkinning && hasSkinningAttributes )
 						? new SkinnedMesh( geometry, material )
 						: new Mesh( geometry, material );
 

粤ICP备19079148号