我目前正在使用3D配置器。因此,我应该能够在通常已经具有UV坐标的FBX对象上导入徽标。问题是:自3天前以来,我一直在努力,尝试在网格物体上导入纹理,但无法使用其UV坐标来映射它。
所以,我的纹理带有徽标。
当我将其映射到简单的多维数据集上时,没问题,它正在运行:
“>
但是当我尝试将相同的纹理应用于我的网格时:
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS94TVE3VS5wbmcifQ==” alt =“具有相同纹理的自定义网格”>
纹理被裁剪。所以我一直在寻找网状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坐标转换为geometry.faceVertexUvs ???
[请帮助我,我完全迷失了:)
我目前正在使用3D配置器。因此,我应该能够在通常已经具有UV坐标的FBX对象上导入徽标。问题是:自3天前以来,我一直在努力,尝试...
没关系,已经通过再次导出.fbx解决了该问题。现在,映射工作正常!
谢谢您的问题和答案。我遇到了同样的问题,我导入的自定义FBX仅将画布的左下像素作为整个网格的颜色。 (我当时使用texture = new THREE.CanvasTexture(ctx.canvas);
来获取纹理)。