فهرست منبع

Merge pull request #12444 from looeee/FBXLoader_fix_multimaterial_bug

FBXLoader: fix bug where last material index group is not added
Mr.doob 7 سال پیش
والد
کامیت
0ccd3804bc
1فایلهای تغییر یافته به همراه21 افزوده شده و 0 حذف شده
  1. 21 0
      examples/js/loaders/FBXLoader.js

+ 21 - 0
examples/js/loaders/FBXLoader.js

@@ -1036,6 +1036,27 @@
 
 		}
 
+		// the loop above doesn't add the last group, do that here.
+		if ( geo.groups.length > 0 ) {
+
+			var lastGroup = geo.groups[ geo.groups.length - 1 ];
+			var lastIndex = lastGroup.start + lastGroup.count;
+
+			if ( lastIndex !== materialIndexBuffer.length ) {
+
+				geo.addGroup( lastIndex, materialIndexBuffer.length - lastIndex, prevMaterialIndex );
+
+			}
+
+		}
+
+		// catch case where the whole geometry has a single non-zero index
+		if ( geo.groups.length === 0 && materialIndexBuffer[ 0 ] !== 0 ) {
+
+			geo.addGroup( 0, materialIndexBuffer.length, materialIndexBuffer[ 0 ] );
+
+		}
+
 		return geo;
 
 	}