如何用three.js修改UV坐标

时间:2016-02-24 18:43:06

标签: three.js uv-mapping

我想在运行时修改JSON模型的展开(UV坐标),以便在几何体的表面上移动纹理。我在Geometry class documentation中找到了faceVertexUvs。它包含一个数组,这是正确的。该数组包含许多元素,我假设它们是每个顶点的UV坐标。示例代码:

var uvs = mesh.geometry.faceVertexUvs[0];
console.log(uvs.length);

给我4232作为输出。到现在为止还挺好。现在我想更改uv值,但数组的4000多个元素是字符串("1""4234")。我只找到了一些示例,展示了如何从头开始创建展开,在这种情况下,人们将Vector2数据推送到faceVertexUvs。那么为什么我没有在那里看到Vector2数据?

谢谢!

1 个答案:

答案 0 :(得分:1)

好的,我自己解决了这个问题,万岁。我正在寻找错误的术语,因为three.js使这很简单。而不是实际改变展开(几何的UV坐标),可以在纹理本身上设置偏移量:

texture.offset.y += 0.1;

为了使用无缝/平铺纹理,我们还必须告诉three.js纹理应该包装/重复:

texture.wrapS = THREE.RepeatWrapping;
texture.wrapT = THREE.RepeatWrapping;

来源:Tunnel Effect Tutorial

嗯,这很容易!