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