我想在运行时修改JSON模型的展开(UV坐标),以便在几何体的表面上移动纹理。我在Geometry class documentation中找到了faceVertexUvs
。它包含一个数组,这是正确的。该数组包含许多元素,我假设它们是每个顶点的UV坐标。示例代码:
var uvs = mesh.geometry.faceVertexUvs[0];
console.log(uvs.length);
给我4232
作为输出。到现在为止还挺好。现在我想更改u
和v
值,但数组的4000多个元素是字符串("1"
到"4234"
)。我只找到了一些示例,展示了如何从头开始创建展开,在这种情况下,人们将Vector2数据推送到faceVertexUvs
。那么为什么我没有在那里看到Vector2数据?
谢谢!
答案 0 :(得分:1)
好的,我自己解决了这个问题,万岁。我正在寻找错误的术语,因为three.js使这很简单。而不是实际改变展开(几何的UV坐标),可以在纹理本身上设置偏移量:
texture.offset.y += 0.1;
为了使用无缝/平铺纹理,我们还必须告诉three.js纹理应该包装/重复:
texture.wrapS = THREE.RepeatWrapping;
texture.wrapT = THREE.RepeatWrapping;
嗯,这很容易!