在制作产线动画的过程中,避免不了实现传送带的运动,实现的方式有很多,这里我给大家介绍一种最简单真实的运动方式:利用贴图进行UV偏移。

首先,我们需要知道贴图的路径,以及需要设定运动的目标模型,将模型的材质进行复制和赋值,代码如下:

/*** 加载传送带材质* @param {*} model :模型* @param {*} picPath :贴图路径*/
function loadTexture(model, picPath) {let modelMesh = null;let modelMeshState = false;new THREE.TextureLoader().load(picPath, function (texture) {texture.wrapS = texture.wrapT = THREE.RepeatWrapping;texture.anisotropy = renderer.capabilities.getMaxAnisotropy(); // anisotropy: 沿通过具有最高纹理像素密度的像素的坐标轴取样的数量。默认情况下,此值为1.较高的值会产生比基本mipmap更少的模糊结果,但需要使用更多纹理样本。使用renderer.getMaxAnisotropy()来查找GPU的最大有效各向异性值; 这个值通常是2的幂// 通过纹理生成材质let material = new THREE.MeshBasicMaterial({map: texture});modelMesh = new THREE.Mesh(model.geometry, material);model.traverse(function (child) {if (child.isMesh) {child.material = material;}});updateUvTransform(modelMesh, modelMeshState); // 传入目标模型,以及运动方向});
}

当我们加载完目标模型的材质后,就是将贴图运动起来了:

/*** 传送带运动* @param {*} modelMesh :材质信息* @param {*} state :运动方向 true为正向/false为负向*/
function updateUvTransform(modelMesh, state) {let texture = modelMesh.material.map;texture.repeat.set(2, 2);let offset = 0;setInterval(function () {if (!state) {offset += 0.02; // 偏移的方向和速度} else {offset -= 0.02; // 偏移的方向和速度}texture.offset.set(0, offset);}, 100);render(); // 渲染
}

可以根据自己的实际需要,更改UV偏移的相关数据,欢迎沟通!!!

THREEJS - 利用UV偏移模拟传送带运动相关推荐

  1. 根据面阵相机拍摄的速度和传送带运动的速度将拍摄的实物图片的每一帧进行无缝拼接使其成为一张完整的图片的全部流程以及c++代码

    注意:本文只是提供一些此项目的一种简单的实现方法以及流程,如下: 初始化相机参数,包括曝光时间.背光补偿等. 初始化传送带控制器,设置传送带速度. 开始捕获图像并保存每一帧. 对于每一帧,将它与前一帧 ...

  2. 利用OSG实现模拟飞机尾迹-粒子系统

    利用OSG实现模拟飞机尾迹-粒子系统 粒子系统简介: 粒子系统是用于不规则模糊物体建模及图像生成的一种方法. 粒子系统是一种过程模型,即利用各种计算过程生成模型各个体素的建模技术.它的基本思想是:采用 ...

  3. Ansys Zemax | 利用 Kogelnik 方法模拟体全息光栅的衍射效率

    全息本文介绍了OpticStudio 21.1中新的原生体全息模拟功能,此功能考虑到全息光栅的物理特性,在序列模式下对其进行全面模拟和分析.同时,也示范使用现有DLL在非序列模式下展示相同的功能.这些 ...

  4. 【Unity Shader实例】 水体WaterEffect(二) 用贴图和uv动画模拟水效

    Unity Shader实现简单水体效果 效果展示 原理 用贴图和uv动画模拟水效实现"假"水. 设计 找一张水波的贴图,处理它的uv值,让贴图流动起来.这样就用静态纹理和uv动画 ...

  5. python绘制动态模拟图-如何利用Python动态模拟太阳系运转

    前言 提到太阳系,大家可能会想到哥白尼和他的日心说,或是捍卫.发展日心说的斗士布鲁诺,他们像一缕光一样照亮了那个时代的夜空,对历史感兴趣的小伙伴可以深入了解一下,这里就不多说了. 太阳以巨大的引力使周 ...

  6. 用.NET模拟天体运动

    用.NET模拟天体运动 这将是一篇罕见而偏极客的文章. 我上大学时就见过一些模拟太阳系等天体运动的软件和网站,觉得非常酷炫,比如这个(http://www.astronoo.com/en/articl ...

  7. 能利用计算机来模拟某种真实的实验现象,自然现象或社会现象的课件是,《计算机辅助教学》课程复习资料...

    考试资料 <计算机辅助教学>课程复习资料 一.单项选择题 1. 教学软件又称为 A . A.课件 B.多媒体 C.操作系统 D.应用软件 2. 继课件之后的第二代教学软件称为 A . A积 ...

  8. php curl 模拟多线程,php利用curl 多线程 模拟 并发的详解

    php利用curl 多线程 模拟 并发的详解 发布于 2014-12-07 10:17:25 | 265 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypert ...

  9. 利用requests库模拟访问博客来提升文章阅读量

    利用requests库模拟访问博客来提升文章阅读量 一.概述 二.简陋版程序 三.升级版程序 一.概述 有的同学在csdn上写了文章之后,看着自己文章的阅读量,少的可怜,不禁希望能把阅读量快速涨上去, ...

最新文章

  1. Nginx为什么快到根本停不下来?
  2. 在Vue中遇到的各种坑 及性能提升
  3. 支持向量机:Outliers
  4. 微众WeCross 跨链平台(9)MIG多边跨域治理
  5. Winform中对xml文件进行保存时空白节点自动换行问题的解决
  6. AXI_03 AXI_LITE_SLAVE_IP核设计与验证
  7. Linux命令【三】gcc编译+静态库+动态库+makefile+gdb调试
  8. 企业库4.0 2008年3月发布的CTP
  9. 1 利用Anaconda完美解决Python 2与python 3的共存问题
  10. oracle导出大数据
  11. 域猫(域名分享平台)
  12. spark压缩和序列化相关
  13. C语言基础(初识C语言)
  14. 多多自走棋改动_多多自走棋7.24更新 棋子和装备改动一览
  15. 关于计算机系统的夺命12问,你能坚持到第几问?
  16. 误码率(BER)测试仪市场研究分析
  17. std::weak_ptr(分析、仿写)
  18. 语义分割评价指标代码:混淆矩阵计算详解
  19. Android MTK 放电曲线以及库轮值矫正
  20. 响应式织梦模板智能安防监控类网站

热门文章

  1. 自己动手实现STL 02:构造析构的基本工具construct()和destroy()(stl_construct.h)
  2. 深入理解 OUI(Oracle Universal Installer)
  3. MySQL 5.6 主从报错一例
  4. 利用 Zabbix 监控 mysqldump 定时备份数据库是否成功
  5. 1 linux中解决文件已rm删除但空间不释放的案例
  6. YUM命令常见报错以及解决办法
  7. 本地上传文件到FastDFS命令上传报错:ERROR - file: connection_pool.c, line: 142, connect to server 192.168.0.197:221
  8. Eclipse插件安装之,使用(已经下载的zip)安装包直接安装插件(例:glassfish 插件 plugin)
  9. 关于记录每天”要完成的事项“和”未完成事项“,(尤其是周末时,对未完成事项的记录一定要全)-----工作方式
  10. 如何查看光驱硬盘托架的尺寸_「二次利用」没想到废光驱电机还可以这样利用...