效果展示
正文
1.效果
在尝试之前,菜鸟提前去网上查了查,顺便看看别人是怎么做的,同时也发现了多种不同的实现思路以及非常好看的效果。
- 常见的有: 波浪形水面和环形扩散形水面,
当然菜鸟也看见了一些非常牛逼的,水中倒影等更逼真的效果都实现了。这对菜鸟来说有点远了,咱就从最简单的波浪形水面和环形扩散形水面入手。本次主要是波浪形水面。
2.实现原理
看见波浪,第一反应就是正弦曲线,在之前也用过很多次了
根据上边的图我们知道,水波只需要利用在顶点着色器中对y轴坐标值的改变就可以实现
同时定义三个可控变量:
- power:用于设置波浪起伏高度
- frequency:波浪的频率,
- speed :波浪滚动的速度
3.代码
properties: &props
mainTexture: { value: white }
mainColor: { value: [1, 1, 1, 1], editor: { type: color } }
//声明变量
power: { value: 0.1 }
frequency: { value: 0.1}
speed: { value: 2}
}%
//指定变量类型
CCProgram watter-props %{
uniform Constants {
float power;
float frequency;
float speed;
};
}%
//根据顶点坐标x值的变化以及其他参数求出对应y轴的正弦值
float y=sin(v_position.x*frequency+cc_time.x*speed)*power+phase;
v_position.y+=y;
4.地址
- 微信公众号:搬砖小菜鸟
扫码关注公众号,发送"gitee"可获取源码