我正在寻找覆盖纹理以覆盖网格的有效方法。在涉及三维映射/对象时,我不是专家,更不是新手。下面显示了我希望最终产品的外观。
尝试使用以下代码应用纹理时,最终结果类似于下面的结果。我没有做任何UV贴图,我相信我的答案可能就在这里。从下图中可以看出,它粗略地采用了图片的一般阴影,但我得到的印象是在模型的每个顶点之间绘制纹理而不是整个画面。
var textureLoader = new THREE.TextureLoader();
var texture = textureLoader.load('resource/images/materials/Mahogany.jpg');
var STLLoader = new THREE.STLLoader();
STLLoader.load( 'test.stl', function ( geometry1 ) {
var meshMaterial = new THREE.MeshBasicMaterial({map:texture});
var mesh = new THREE.Mesh( geometry1, meshMaterial );
mesh.scale.set(1, 1, 1);
mesh.position.set(5, 20, 80);
scene.add(mesh);
});
立方体具有正确的纹理,而我的STL加载网格没有。
请忽略上图中对象的旋转,一旦修复了纹理问题,我将移动到将对象组合在一起。
在这里提问时相当新,所以请做一些评论,以帮助我扩展我的问题,如果它太笼统或不够精确。谢谢。
答案 0 :(得分:1)
您可以使用
THREE.MeshPhongMaterial()
而不是
THREE.MeshBasicMaterial()
THREE.MeshPhongMaterial()
会将材料包裹在对象之外,我们可以根据对象获得弯曲的材质。