我有几个带有相关mipmap纹理文件的OBJ文件。我将mipmap加载为纹理并将其映射到加载每个OBJ文件所产生的3D对象。 3D对象在一起渲染时形成较大3D对象的部分。
我想使用2D图像作为纹理而不是使用mipmap,并将其“拖放”在3D对象的顶部,以便3D对象中每个(x,y)的颜色对应于颜色在纹理的(x,y)位置(z不重要 - 拉伸/扭曲纹理可以)。
基本上,不是将纹理映射到对象中的(x,y,z)顶点,而是将其映射到具有相同(x,y)的任何顶点。有没有办法用Three.js做这个而不必在画布上读取图像数据?
答案 0 :(得分:0)
当然,您只需更改网格的每个顶点的UV,以便:
uv.x = C * ( vertex.x + A )
uv.y = C * ( vertex.y + A )
然后将纹理指定给网格,你应该得到你想要的。
如上所述,您必须适当地应用比例/平移因子,因此UV最终会在[0,1]范围内。