1

我正在尝试正确映射 UV 纹理,但失败了......

我在我的应用程序中得到了下一个结果:

在此处输入图像描述

结果不是我在等待。我想要下一个描述的视图:

在此处输入图像描述

源代码在这里:

http://pastebin.com/aDg981Bk

4

1 回答 1

5

您需要查看PlaneGeometry.js并了解 UV 的设置方式。然后,您将能够弄清楚如何重置它们。这应该可行——每个“面”有两个三角形。

for(var i = 0; i < geometry.faces.length / 2; i++) {

    geometry.faceVertexUvs[ 0 ].push(
    [
        new THREE.Vector2( 0, 0 ),
        new THREE.Vector2( 0, 1 ),
        new THREE.Vector2( 1, 0 ),    
    ] );

    geometry.faces[ 2 * i ].materialIndex = i;

    geometry.faceVertexUvs[ 0 ].push(
    [
        new THREE.Vector2( 0, 1 ),
        new THREE.Vector2( 1, 1 ),
        new THREE.Vector2( 1, 0 ),    
    ] );

    geometry.faces[ 2 * i + 1 ].materialIndex = i;

    materials.push( createTexture( i ) );

}    

//geometry.computeFaceNormals(); // not needed
//geometry.dynamic = true; // not needed
//geometry.uvsNeedUpdate = true; // not needed since plane has not been rendered yet    

三.js r.62

于 2013-11-10T17:47:28.867 回答