这次分析了shadertoy上的一个例子
先上效果图。
中心是一个大的波纹,我们可以用鼠标控制小的波纹,产生干涉。
用opengl模拟水纹是一个复杂的过程,这里我们采用的方法是。。。欺骗法。
将水纹看成黑白相间的圆环,因为只有黑白两色,水纹上的圆环移动时会产生干涉的假象。
我们还是直接来一步一步的看代码,先在屏幕上画一个圆环。
#define PI 3.1415
float ripple(float dis){
return sin(dis*2.*PI);//返回一个-1到1的值
}
void mainImage( out vec4 fragColor, in vec2 fragCo