使用Three.js将纹理(x,y)映射到3D对象(x,y)

时间:2013-01-25 01:20:48

标签: javascript three.js webgl textures

我有几个带有相关mipmap纹理文件的OBJ文件。我将mipmap加载为纹理并将其映射到加载每个OBJ文件所产生的3D对象。 3D对象在一起渲染时形成较大3D对象的部分。

我想使用2D图像作为纹理而不是使用mipmap,并将其“拖放”在3D对象的顶部,以便3D对象中每个(x,y)的颜色对应于颜色在纹理的(x,y)位置(z不重要 - 拉伸/扭曲纹理可以)。

基本上,不是将纹理映射到对象中的(x,y,z)顶点,而是将其映射到具有相同(x,y)的任何顶点。有没有办法用Three.js做这个而不必在画布上读取图像数据?

1 个答案:

答案 0 :(得分:0)

当然,您只需更改网格的每个顶点的UV,以便:

uv.x = C * ( vertex.x + A )
uv.y = C * ( vertex.y + A )

然后将纹理指定给网格,你应该得到你想要的。

如上所述,您必须适当地应用比例/平移因子,因此UV最终会在[0,1]范围内。