Explorar o código

Fix some MMDLoader bugs (#9920)

Takahiro %!s(int64=8) %!d(string=hai) anos
pai
achega
0eaa2c6742
Modificáronse 1 ficheiros con 6 adicións e 13 borrados
  1. 6 13
      examples/js/loaders/MMDLoader.js

+ 6 - 13
examples/js/loaders/MMDLoader.js

@@ -2253,7 +2253,7 @@ THREE.MMDLoader.prototype.createMesh = function ( model, texturePath, onProgress
 			m.skinning = geometry.bones.length > 0 ? true : false;
 			m.morphTargets = geometry.morphTargets.length > 0 ? true : false;
 			m.lights = true;
-			m.side = p.side;
+			m.side = ( model.metadata.format === 'pmx' && ( p2.flag & 0x1 ) === 1 ) ? THREE.DoubleSide : p.side;
 			m.transparent = p.transparent;
 			m.fog = true;
 
@@ -2459,7 +2459,7 @@ THREE.MMDLoader.prototype.createMesh = function ( model, texturePath, onProgress
 					alpha: p2.edgeColor[ 3 ]
 				};
 
-				if ( m.outlineParameters.thickness === 0.0 ) m.outlineParameters.visible = false;
+				if ( ( p2.flag & 0x10 ) === 0 || m.outlineParameters.thickness === 0.0 ) m.outlineParameters.visible = false;
 
 				m.uniforms.celShading.value = 1;
 
@@ -2846,21 +2846,14 @@ THREE.MMDLoader.prototype.leftToRightModel = function ( model ) {
 
 		var m = model.morphs[ i ];
 
-		if ( model.metadata.format === 'pmx' ) {
-
-			if ( m.type === 1 ) {
+		if ( model.metadata.format === 'pmx' && m.type !== 1 ) {
 
-				m = m.elements;
-
-			} else {
-
-				continue;
-
-			}
+			// TODO: implement
+			continue;
 
 		}
 
-		for ( var j = 0; j < m.elementCount; j++ ) {
+		for ( var j = 0; j < m.elements.length; j++ ) {
 
 			helper.leftToRightVector3( m.elements[ j ].position );