ThreeJS Texture Fit UV Map

时间:2019-03-21 14:49:27

标签: three.js textures uv-mapping

我正打算开发配置器。关于杯子。这些应以3D显示。设计应上载。它可以通过上传这样的纹理来工作。

否则,该设计将不适合。有没有办法将全尺寸矩形图像作为纹理加载?纹理可能会被拉伸。用户不应该将纹理设置为立方体,而是可以自动在背景中..我希望您能理解我。 这是OBJ文件

enter image description here

1 个答案:

答案 0 :(得分:0)

您的UV贴图看起来很难应用纹理。尤其是因为它有这么多的空白空间,并且歪曲成弧形,所以您需要对所有纹理进行扭曲以使其完美契合。

您应该使UV映射为您工作。为什么不使用内置的CylinderBufferGeometry class在杯子几何图形的顶部应用纹理?您可以使用其属性来匹配杯子形状的侧面:

CylinderBufferGeometry(
    radiusTop, 
    radiusBottom,
    height,
    radialSegments,
    heightSegments,
    openEnded,
    thetaStart,
    thetaLength
);

enter image description here

使用这种方法,您可以保持杯子的几何形状不变,然后在其顶部应用“贴纸”纹理。如果需要,它可以一直包裹在杯子周围,也可以只限于前面。您可以放大,旋转它,并且它与Blender中完成的UV贴图无关。另一个好处是,这种方法占据了整个[0, 1]的UV范围,因此您可以简单地使用正方形纹理,而不会浪费数据。

Look at this demo,了解如何使用几何图形的配置。