javascript - 我怎样才能在 three.js 中做一个以液体方式移动的 2D 变形圆圈?

标签 javascript three.js webgl morphing

我有一个网格,它是一个圆形几何体。我想像这个示例中的二维库 two.js 一样对其进行动画处理: https://two.js.org/examples/physics.html

现在我看这个例子并将相机放在形状的顶部,但我确信有一个更简单的方法可以满足我的需要:https://threejs.org/examples/#webgl_gpgpu_water

有人知道我该怎么做吗?

最佳答案

您只需根据一些 sin() 或 cos() 值根据 X 和 Y 坐标以及增量阶段(时间)移动顶点位置即可制作动画。 您的顶点着色器可以包含类似这样的内容,其中相位随时间(通常是时钟)递增。

glPosition.x = vertex.x + sin((phase*frequency) + vertex.y) * amplitude;
glPosition.y = vertex.y + sin((phase*frequency) + vertex.x) * amplitude;

基本概念在这里,但您必须通过测试结果自行调整组件。您可能应该调整频率、幅度,添加更多因素以增加不对称性和随机性。

关于javascript - 我怎样才能在 three.js 中做一个以液体方式移动的 2D 变形圆圈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46040811/

相关文章:

javascript - Google Chrome 不显示 javascript 更新(使用 Three.js)

javascript - 下拉菜单不起作用

javascript - 我在哪里可以找到适合初学者的示例或教程,将 three.js 动画合并到 Web 应用程序中?

javascript - 使用webgl调用p5.js的createcanvas方法出错

javascript - 如何在WebGL中向静态对象添加纹理?

更改后,javascript href 属性未显示或启用

javascript - 使用 Javascript 比较 2 个数组并找出差异

javascript - VueJS : How to pass interpolated variable as parameter

javascript - 使用正则表达式和 javascript 解析 twitter @name

javascript - 支持 WebGL 模板缓冲区