Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript three.js map mesh.geometry.attributes.uv_Javascript_Three.js - Fatal编程技术网

Javascript three.js map mesh.geometry.attributes.uv

Javascript three.js map mesh.geometry.attributes.uv,javascript,three.js,Javascript,Three.js,我目前正在开发一个3D配置程序。 所以我应该能够在FBX对象上导入徽标,通常已经有UV坐标。 问题是:从3天前开始,我就一直在努力,试图在网格上导入纹理,但我无法使用他的UV坐标进行贴图 所以,我有一个纹理的标志 当我把它映射到一个简单的立方体上时,没问题,它正在工作: 但当我尝试将相同纹理应用于网格时: 纹理被裁剪。 所以我一直在查看mesh json树,我发现了它: 这里有uv坐标,但它似乎与我的多维数据集不同,因为当我查看他的json时,我没有找到(在多维数据集上)相同的树: 最

我目前正在开发一个3D配置程序。 所以我应该能够在FBX对象上导入徽标,通常已经有UV坐标。 问题是:从3天前开始,我就一直在努力,试图在网格上导入纹理,但我无法使用他的UV坐标进行贴图

所以,我有一个纹理的标志

当我把它映射到一个简单的立方体上时,没问题,它正在工作:

但当我尝试将相同纹理应用于网格时:

纹理被裁剪。 所以我一直在查看mesh json树,我发现了它:

这里有uv坐标,但它似乎与我的多维数据集不同,因为当我查看他的json时,我没有找到(在多维数据集上)相同的树:

最后,这是我的代码:

if(myMesh.name == 'Logo'){

    // Texture

    var texture = new THREE.TextureLoader().load('img/logoTesla_Verre_green.jpg', function(){
        texture.needUpdate = true;

        // Material

        var material = new THREE.MeshLambertMaterial( {map: texture, morphTargets: true} );
        material.needUpdate = true;

        // Geometry Cube

        var geometry = new THREE.BoxGeometry( 40, 40, 40 );

        // Cube 

        var cube = new THREE.Mesh( geometry, material);
        scene.add(cube);

        // Duplicate logo mesh for testing 

        var newGeometry = myMesh.geometry;
        var newMesh = new THREE.Mesh( newGeometry, material);
        newMesh.position.y = 100;
        newMesh.geometry.uvsNeedUpdate = true;
        scene.add(newMesh);
    });
}
我的问题是:我应该使用geometry.attributes.uv对象来映射纹理吗?如果是,怎么做

或者我应该将这些UV坐标转换为几何体。faceVertexUvs


请帮帮我,我完全迷路了:)

没关系,通过再次导出.fbx解决了这个问题。 现在映射工作正常


但我不知道为什么…

谢谢你的提问和回答。我遇到了同样的问题,我导入的自定义FBX只将画布左下角的像素作为整个网格的颜色。(我正在使用
texture=new THREE.CanvasTexture(ctx.canvas);
获取我的纹理)

我的问题是FBX没有UV贴图我如何解决它我将fbx导入maya,打开UV编辑器(在建模菜单模式下进入UV->UV编辑器),然后在UV编辑器中有一个创建部分,我点击其中一个选项(我选择了圆柱体),然后使用默认fbx设置导出它。我非常感谢这一切奏效了

您可以在此处看到将画布上下文用作自定义FBX纹理的结果: