请写出 cocos creator shader 水面波纹代码
时间: 2023-09-05 21:10:09 浏览: 271
以下是一个简单的 cocos creator shader 水面波纹代码:
```glsl
CCProgram wave {
precision highp float;
uniform sampler2D texture;
uniform vec2 resolution;
uniform float time;
varying vec2 uv0;
void main() {
vec2 p = -1.0 + 2.0 * uv0;
float x = p.x * resolution.x / resolution.y;
float y = p.y;
float d = length(vec2(x, y));
vec2 uv = p + 0.1 * vec2(cos(time * 0.1), sin(time * 0.1));
uv = mix(p, uv, min(d, 1.0));
gl_FragColor = texture2D(texture, uv);
}
}
```
在这个代码中,我们定义了一个叫做 `wave` 的 shader。我们首先声明了一些变量,包括一个纹理样本,一个分辨率变量,一个时间变量和一个顶点着色器传递过来的变量 `uv0`。
在 `main()` 函数中,我们首先将 `uv0` 映射到一个二维平面上,然后计算出每个像素点到中心的距离。我们将纹理坐标偏移一定量,使用 `mix()` 函数将偏移后的纹理坐标和原始纹理坐标进行插值,从而创建出波浪效果。最后,我们将渲染结果输出为 `gl_FragColor`。
阅读全文