如何在threejs中制作动画波浪

雅库布·尤兹扎克

我正在尝试使用 Three.js 和 Points 制作动画 3D 波浪。这是一种工作。它开始缓慢,然后应用程序增加。但一段时间后,它变得太高而且不稳定。

这就是它应该看起来的样子。然而,一段时间后,它失去了它的形状。问题是正弦的减少周期和增加的幅度。但我无法修复它。

它看起来如何

这是一些代码。

创建点网格。

this.particleGeometry = new Geometry()

for (let ix = 0; ix < this.WIDTH; ix++) {
  for (let iz = 0; iz < this.HEIGHT; iz++) {
    let vert = new Vector3()
    vert.x = ix * this.SEPERATION - ((this.WIDTH * this.SEPERATION) / 2)
    vert.y = (Math.cos((ix / this.WIDTH) * Math.PI * 6) + Math.sin((iz / this.HEIGHT) * Math.PI * 6))
    vert.z = iz * this.SEPERATION - ((this.HEIGHT * this.SEPERATION) / 2)
    this.particleGeometry.vertices.push(vert)
  }
}

this.particleCloud = new Points(this.particleGeometry, this.material)
this.scene.add(this.particleCloud)

初代还是不错的。但是更新有问题。

动画()代码:

render () {
  let index = 0
  let time = Date.now() * 0.00005
  let h = (360 * (1.0 + time) % 360) / 360

  this.theta += 0.0008

  this.material.color.setHSL(h, 0.5, 0.5)

  for (let ix = 0; ix < this.WIDTH; ix++) {
    for (let iz = 0; iz < this.HEIGHT; iz++) {
      this.particleCloud.geometry.vertices[index].y = (Math.cos((ix * this.theta / this.WIDTH) * Math.PI * 6) + Math.sin((iz * this.theta / this.HEIGHT) * Math.PI * 6))
      index++
    }
  }

  this.particleCloud.geometry.verticesNeedUpdate = true
  this.updateGuiSettings()
  this.renderer.render(this.scene, this.camera)
},

this.theta 从 0 开始,然后慢慢增加。

雅库布·尤兹扎克

好的,让它工作 (Math.cos((ix / this.WIDTH * PI * 8 + this.theta)) + Math.sin((iz / this.HEIGHT * PI * 8 + this.theta)))

现在稳定了。但是会调整它可能更多。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在CSS中制作全角波浪

来自分类Dev

如何在vuejs中创建动画的“波浪”效果?

来自分类Dev

如何在iOS中制作圆形动画

来自分类Dev

如何在布局中制作从右到左的动画

来自分类Dev

如何在SwiftUI中制作Nodes的动画?

来自分类Dev

如何在LibGDX中制作闪烁的动画

来自分类Dev

如何在CSS中制作流畅的动画?

来自分类Dev

如何在MPAndroidChart中制作动画?

来自分类Dev

如何在TextView中制作计数动画

来自分类Dev

如何在Swift中制作动画shadowOffset?

来自分类Dev

如何在布局中制作从右到左的动画

来自分类Dev

如何在Matlab中制作动画情节

来自分类Dev

如何在CSS中制作流畅的动画?

来自分类Dev

如何在CSS中制作删除动画?

来自分类Dev

如何在Viewpager中为片段制作动画?

来自分类Dev

如何在Apple WatchKit中制作动画按钮?

来自分类Dev

如何在Matlab中制作动画图

来自分类Dev

如何在Sprite Kit中制作动画按钮

来自分类Dev

如何在Scene2d中制作UI动画?

来自分类Dev

如何在HTML文档中制作GIF动画?

来自分类Dev

如何在Flutter中制作多雨的动画

来自分类Dev

如何在Flutter中制作手势驱动的动画?

来自分类Dev

如何在颤动中制作水平滚动动画

来自分类Dev

如何在pygame中制作子弹动画?

来自分类Dev

如何在iOS Swift中制作加载动画?

来自分类Dev

如何在JavaScript中制作修改后的柜台动画?

来自分类Dev

如何在SwiftUI中按动画制作导航链接?

来自分类Dev

如何在iOS中制作类似BooK封面的动画?

来自分类Dev

如何在Javascript中横向平滑地制作动画?