我正在尝试从蠕虫中重现波浪/水的效果(请参阅此处http://youtu.be/S6lrRqst9Z4?t=31s)从我的理解来看,它实际上不是精灵,它在程序上是由类似sin wave的东西生成的。
有人创造过这样的东西吗?或任何想法我将如何处理?
我正在尝试从蠕虫中重现波浪/水的效果(请参阅此处http://youtu.be/S6lrRqst9Z4?t=31s)从我的理解来看,它实际上不是精灵,它在程序上是由类似sin wave的东西生成的。
有人创造过这样的东西吗?或任何想法我将如何处理?
Answers:
是的,您是对的,可以使用数学正弦函数来模拟此二维水效果:
wave = sin(phase + t * frequency) * amplitude
phase
是一个常数,随便放什么。 t
为要处理的像素/顶点的水平位置:t = x;
amplitude
随着时间的推移发生变化(这将使波浪上下移动):
amplitude = sin(t * wave_speed) * wave_height
结合几个波浪以获得更强的弹性效果:
wave_final = wave0 + wave1 + ...
。
对于每个波,稍微改变一些参数(例如:相位,频率等)。
这是我仅用两个波就做出的一个简单示例:
http://glslsandbox.com/e#4988.0(需要启用最新浏览器和WebGL)
注意:这是一个着色器,但是使用2D基元执行此操作的方法相同。
编辑:您不指定任何框架或2d渲染系统,但是这是如何使用多边形/三角带渲染的方法: