基础环境搭建:

拷贝water.jpg图片至textures文件夹下
创建dynamic_sea:

  1. 创建dynamic_sea网格模型:
    const geometry = new THREE.PlaneGeometry(20000, 20000)planeGeometry.rotateX(-Math.PI / 2)const texture = new THREE.TextureLoader().load('textures/water.jpg')const material = new THREE.MeshBasicMaterial({map: texture})const dynamic_sea = new THREE.Mesh(geometry, material)//dynamic_sea.rotation.x = -Math.PI / 2scene.add(dynamic_sea)

  1. 设置纹理平铺方式,实现海面颜色差异:

.wrapS : number .wrapT : number
定义纹理贴图在水平/垂直方向上将如何包裹
默认值THREE.ClampToEdgeWrapping,即纹理边缘将被推到外部边缘的纹素,其它的两个选项分别是THREE.RepeatWrapping和THREE.MirroredRepeatWrapping。
请注意:纹理中图像的平铺,仅有当图像大小(以像素为单位)为2的幂(2、4、8、16、32、64、128、256、512、1024、2048、……)时才起作用,宽度、高度无需相等,但每个维度的长度必须都是2的幂。
.repeat : Vector2
纹理在每一个方向U和v的表面上重复了多少次,如果repeat在任何一个方向上都大于1,相应的Wrap参数也应该设置为THREE.RepeatWrapping或THREE.mirrredrepeatwrapped以实现所需的平铺效果。

    texture.wrapS = texture.wrapT = THREE.RepeatWrappingtexture.repeat.set(5, 5)

设置个颜色:

  1. 设置海浪上下起伏效果:

.usage : Usage
为优化目的定义数据存储的预期使用模式,对应于WebGLRenderingContext.bufferData()的使用参数,默认是StaticDrawUsage。
相关Usage Constants链接
.needsUpdate : Boolean
该标志位指明当前 attribute 已经被修改过,且需要再次送入 GPU 处理。当开发者改变了该队列的值,则标志位需要设置为 true。

.initMeshes()const positions = planeGeometry.attributes.positionpositions.usage = THREE.DynamicDrawUsagefor (let i = 0; i < positions.count; i++) {const y = 35 * Math.sin(i / 2)positions.setY(i, y)}......
.render()const time = clock.getElapsedTime() * 10const positions = planeGeometry.attributes.positionfor (let i = 0; i < positions.count; i++) {const y = 35 * Math.sin(i / 5 + (time + i) / 7)positions.setY(i, y)}positions.needsUpdate = true
  1. 导入及使用第一人称控制器:

.update ( delta : Number ) : undefined
delta: Time delta value.更新控制器,常被用在动画循环中。

    import......controls = new FirstPersonControls(camera, renderer.domElement)controls.movementSpeed = 200controls.lookSpeed = 0.01   ...const delta = clock.getDelta()controls.update(delta)...

  1. 加上背景色和雾化效果,设置网格模型长宽段数:
    planeGeometry = new THREE.PlaneGeometry(20000, 20000, 127, 127)

Three dynamic_sea实例相关推荐

  1. 前端开发基础知识汇总

    一.HTML 1.前言与常用标签 浏览器 内核 备注 IE Trident IE.猎豹安全.360极速浏览器.百度浏览器 firefox Gecko 可惜这几年已经没落了,打开速度慢.升级频繁.猪一样 ...

  2. Spring Cloud微服务系统架构的一些简单介绍和使用

    Spring Cloud 目录 特征 云原生应用程序 Spring Cloud上下文:应用程序上下文服务 引导应用程序上下文 应用程序上下文层次结构 改变Bootstrap的位置Properties ...

  3. ECS(Linux)连接RDS,使用命令行方式连接实例

    使用命令行方式连接实例 通过命令行连接RDS MySQL数据库,连接方式如下: mysql -h<连接地址> -P<端口> -u<用户名> -p -D<数据库 ...

  4. Alibaba Cloud Linux 2.1903 LTS 64位服务器yum源下载404,Alibaba Cloud Linux 2实例中使用docker-ce、epel等YUM源安装软件失败

    [Alibaba Cloud Linux 2.1903 LTS 64位]服务器yum源下载404 failure: repodata/repomd.xml from docker-ce-stable: ...

  5. List元素互换,List元素转换下标,Java Collections.swap()方法实例解析

    Java Collections.swap()方法解析 jdk源码: public static void swap(List<?> list, int i, int j) {// ins ...

  6. Python 类—类属性(私有属性、公有属性、实例属性、局部变量)类方法(实例方法、静态方法)

    1. 创建类 类是对某个对象的定义,它包含有关对象动作方式的信息,包括它的名称.方法.属性和事件.类不存在于内存中,因此它本身并不是对象.当程序运行需要引用类的代码时,就会在内存中创建一个类的新实例, ...

  7. java局部变量全局变量,实例变量的理解

    java局部变量全局变量,实例变量的理解 局部变量 可以理解为写在方法中的变量. public class Variable {//类变量static String name = "小明&q ...

  8. 【C#实践】三层实例:登录过程

    关于三层,看完一遍,想着开始敲七层,看着别人的代码敲都有点找不到,于是重新敲了一遍三层,收获很多! 首先,它没有模板,也不是一下子就完成的,它是有思路的,根据思路走,整个过程就是很自然而然的过程! D ...

  9. python实现glove,gensim.word2vec模型训练实例

    20210331 https://blog.csdn.net/sinat_26917383/article/details/83029140 glove实例 https://dumps.wikimed ...

最新文章

  1. 2021-01-16交叉熵损失函数比均方误差损失函数优点在哪里
  2. distinct 只针对一个字段
  3. OTSU算法(也称最大类间差法,有时也称之为大津算法)
  4. signature=8eba57874a1690f9fdaff3572c7cef5f,基于EFI固件文件系统的平台安全策略研究与实现...
  5. 小学计算机考查方案,宋家塘街道中心学校2020年理化生实验操作和信息技术考试方案...
  6. adas记录仪app_4K旗舰丨盯盯拍MINI5智能行车记录仪荣耀新生!
  7. 李宏毅老师机器学习和深度学习
  8. 获取BGR颜色的HSV值
  9. 真相来了!魅族再回应手机不能拨打120一事:系统升级问题
  10. Android Fragment (一)
  11. 社会对IT 从业人员综合素质的需求
  12. Object类的用法(二)
  13. VBA技能:取整函数的使用
  14. STLINK下载程序出现cannot access target. shutting down debug session问题解决的一般步骤
  15. 解析explain执行计划
  16. 11. django多表查询part1
  17. toad for oracle12.11,Toad for Oracle 12.11 - 安装指南
  18. D3D12渲染技术之帧资源
  19. 科技创新赋能金融转型,巨杉数据库与赞同科技完成产品互认证
  20. 网络加速_爱奇艺SD-WAN建设之网络加速平台实践

热门文章

  1. 种草问题java_关于KOL种草营销常见问题 我来为你解答
  2. mysql的七种查询命令_mysql查询命令详细
  3. MaxViT实战:使用MaxViT实现图像分类任务(一)
  4. 【KAFKA】kafka可视化工具kafkaTool 免费下载
  5. 回归年、恒星年、太阳日、恒星日和闰秒相关知识
  6. Python开多次方根
  7. CentOS7.8下Cadence IC设计环境搭建( IC617+MMSIM151+Calibre2015)
  8. delphi 11(10.5) 来了
  9. Bert实现意图分类
  10. 英特尔90亿卖NAND内存业务“回血”,SK海力士买得值吗?