[three.js]UV动画

背景

好久没接触UV动画这块内容,突然接手了一个涉及这块的开发任务,被打个措手不及。完成任务后,把涉及到的知识点记录下。其实做的就是一个光带。

UV坐标系

UV坐标系是将贴图贴到某个面上时,指定怎么贴合的坐标系。以平面几何体为例,U坐标对应几何体的X坐标,V坐标对应几何体的Y坐标。对应关系是将X坐标上平面几何体的宽度映射到U坐标上的单位1,将Y坐标上平面几何体的高度映射到V坐标上的单位1。

UV动画

一个光带的示例如下:

const geometry = new THREE.PlaneGeometry(200, 200);
//纹理贴图加载器TextureLoader
const texLoader = new THREE.TextureLoader();
// .load()方法加载图像,返回一个纹理对象Texture
const texture = texLoader.load('./纹理1.jpg');

const material = new THREE.MeshLambertMaterial({
    map: texture,//map表示材质的颜色贴图属性
});
const mesh = new THREE.Mesh(geometry, material);

// 设置贴图在U方向和V方向上的平铺次数
// texture.repeat.set(1, 1);	// U方向铺1,V方向铺1,1张贴图贴住平面整体
// texture.repeat.set(2, 1);	// U方向铺2,V方向铺1,2张贴图沿U方向贴住平面整体
texture.repeat.set(1, 0.5);	// U方向铺1,V方向铺0.5,沿V方向将贴图裁成一般,半张贴图贴住平面整体

texture.offset.y +=0.6;//纹理V方向偏移
// 纹理映射模式(包裹模式)
texture.wrapS = texture.wrapT = THREE.RepeatWrapping;            
// 将贴图 V 设置为 -0.4,从0.6到-0.4正好是一个贴图的高度,offset的偏移方向我也很迷,正好和我想象的方向相反,所以我的方法就是按我想象的方向的反方向来就行,或者两个方向都跑一下
const tween = new TWEEN.Tween(texture.offset).to({ y: -0.4 }, 5000 / 3);
// 设置重复次数
tween.repeat(Infinity);
// 开始动画
tween.start();                                                                                    

参考

参考

相关推荐

  1. android ——动画

    2024-03-11 00:56:02       41 阅读
  2. WPF —— 动画

    2024-03-11 00:56:02       13 阅读
  3. Android UI:动画:视图动画

    2024-03-11 00:56:02       12 阅读
  4. Android UI:动画:帧动画

    2024-03-11 00:56:02       10 阅读
  5. css连续动画动画组)

    2024-03-11 00:56:02       5 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-11 00:56:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-11 00:56:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-11 00:56:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-11 00:56:02       20 阅读

热门阅读

  1. 【IC设计】Scala、Chisel、Chiseltest版本兼容信息

    2024-03-11 00:56:02       20 阅读
  2. iOS面试题

    2024-03-11 00:56:02       26 阅读
  3. 力扣题库第3题:最长连续序列

    2024-03-11 00:56:02       18 阅读
  4. c++之迭代器与反向迭代器

    2024-03-11 00:56:02       27 阅读
  5. 序列的第 k 个数(c++题解)

    2024-03-11 00:56:02       23 阅读
  6. OceanBase社区版单节点安装搭建(Docker)

    2024-03-11 00:56:02       23 阅读
  7. Hyperf AOP 和 注解

    2024-03-11 00:56:02       23 阅读
  8. mysql 8 修改账号密码

    2024-03-11 00:56:02       18 阅读
  9. 链表简单功能的总结

    2024-03-11 00:56:02       23 阅读
  10. Ubuntu设置时区和时间同步

    2024-03-11 00:56:02       30 阅读
  11. 【国产MCU】-窗口看门狗(WWDG)

    2024-03-11 00:56:02       25 阅读
  12. SQL 数据库安全的基本概念和技术

    2024-03-11 00:56:02       21 阅读