Three.js ThreeJS:纹理显示为部分平坦

Three.js ThreeJS:纹理显示为部分平坦,three.js,Three.js,这是一个测试页面 正如你所看到的,这本书的书脊上有一个皮革纹理,前后有一个平坦的颜色,但它是一个单一的对象,你知道为什么纹理应用不正确吗?它和建模或javascript编程有关吗 这是关于这本书的一段代码 var texture2 = THREE.ImageUtils.loadTexture( "textures/pelle.jpg"); texture2.wrapS = THREE.ClampToEdgeWrapping; texture2.wrapT = THREE.ClampToEdge

这是一个测试页面

正如你所看到的,这本书的书脊上有一个皮革纹理,前后有一个平坦的颜色,但它是一个单一的对象,你知道为什么纹理应用不正确吗?它和建模或javascript编程有关吗

这是关于这本书的一段代码

var texture2 = THREE.ImageUtils.loadTexture( "textures/pelle.jpg");
texture2.wrapS = THREE.ClampToEdgeWrapping;
texture2.wrapT = THREE.ClampToEdgeWrapping;
texture2.needsUpdate = true;
texture2.repeat.set( 1, 1 );
texture2.anisotropy = maxAnisotropy;
//var material = new THREE.MeshPhongMaterial({ color: 0xeeeeee, map:texture2, shininess: 100, bumpMap: texture2, bumpScale: 2, metal:false  });
var materialArray = [];

materialArray.push(new THREE.MeshBasicMaterial( { color: 0xFFFFFF }));
materialArray.push(new THREE.MeshPhongMaterial( { map: textureB }));
materialArray.push(new THREE.MeshPhongMaterial( { map: texture2, bumpMap:texture2 }));
var DiceBlueMaterial = new THREE.MeshFaceMaterial(materialArray);

var loader = new THREE.JSONLoader();
loader.load( "js/libro2.js", function ( geometry, materials ) { createScene( geometry, materials, 0.2 ) });
// draw!
function createScene( geometry, materials, scale ) {

    zmesh = new THREE.Mesh( geometry, DiceBlueMaterial );
    zmesh.position.set( -50, -50, 100 );
    //zmesh.rotation.set( 0, 0, 0 );
    zmesh.rotation.set( 90 * Math.PI / 180, 0, 30 * Math.PI / 180 );
    zmesh.scale.set( scale, scale, scale );
    zmesh.castShadow = true;
    zmesh.receiveShadow = true;
    scene.add( zmesh );
    scene.add( sphere );

    animate();
    //renderer.render(scene, camera);
}

抱歉,如果这是一个非常新的问题,但我就是想不出来

当你说“纹理应用不正确”时,你的确切意思是什么?您链接的示例是做了您不期望的事情还是没有做您确实期望的事情?在我看来,书脊是皮革的,封面是蓝色的,好像这就是目的。封面和书脊是同一个物体,你在封面上看到的蓝色平面颜色应该是皮革。这可能是一个UV映射问题?我不是3D专家,但这可能是因为脊椎有很多面,而封面没有?