0
我有几个带有关联的mipmap纹理文件的OBJ文件。我将mipmap作为纹理加载并将其映射到加载每个OBJ文件后产生的3D对象。 3D对象一起渲染时会形成更大的3D对象的各个部分。使用Three.js将纹理(x,y)映射到3D对象(x,y)
而不是使用mipmap,我想使用2D图像作为纹理并将其“放”在3D对象的顶部,以便3D对象中每个(x,y)的颜色对应于颜色在纹理的(x,y)位置(z不重要 - 拉伸/扭曲的纹理可以)。
基本上,我不是将纹理映射到对象中的(x,y,z)顶点,而是将它映射到具有相同(x,y)的任何顶点。有没有办法与Three.js做到这一点,而无需阅读画布中的图像数据?
非常感谢!完美的作品! –
对不起,快速跟进:我的网格坐标不是(0,1)x(0,1),所以我在创建时对它们进行了规范化(通过在所有顶点上调用.normalize())。现在,不是我的3d对象,所有的网格顶点都折叠成半球形。关于为什么会发生这种情况的想法?有没有办法将非标准化的坐标传递给faceVertexUvs? –
不要更改网格顶点坐标。相反,如上所述应用仿射变换。我编辑了这篇文章。 – WestLangley