【问题标题】:Overlaying texture onto STL loaded mesh将纹理叠加到 STL 加载的网格上
【发布时间】:2016-11-22 03:42:27
【问题描述】:

我正在寻找一种覆盖纹理以覆盖网格的有效方法。在 3 维映射/对象方面,我不是专家,更像是新手。下面显示了我希望最终产品的外观。

当尝试使用以下代码应用纹理时,最终结果如下所示。我没有做过任何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 加载的网格没有。

请忽略上图中对象的旋转,一旦我解决了我的纹理问题,我将把我的对象合并在一起。

在这里提出问题相当新,所以如果它太笼统或不够精确,请发表评论以帮助我扩展我的问题。谢谢。

【问题讨论】:

    标签: javascript jquery stl three.js


    【解决方案1】:

    你可以使用

    THREE.MeshPhongMaterial()
    

    而不是

    THREE.MeshBasicMaterial()
    

    THREE.MeshPhongMaterial()会将材质包裹在物体外面,我们可以根据物体得到弯曲的材质。

    【讨论】:

      猜你喜欢
      • 2016-01-24
      • 1970-01-01
      • 2013-04-10
      • 1970-01-01
      • 2014-08-21
      • 1970-01-01
      • 2011-02-09
      • 2017-04-28
      • 1970-01-01
      相关资源
      最近更新 更多