STEP
HeavySide Step Function,译为赫维赛德阶跃函数(此处维基)
step(a,b):当a小于b,返回0;a大于b,返回1。(具体图像可以查看本节最后一张图的蓝色函数)
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 uv = (2.*fragCoord-iResolution.xy)/min(iResolution.x,iResolution.y);
float x = iResolution.x/iResolution.y;
float color = 0.;
//横向将屏幕分成4部分
//step实现方式
if(uv.x<-0.6*x){
if(uv.y>0.5) color = 1.;
else color = 0.;
}
//step
if(uv.x<-0.2*x) color = step(-0.5,uv.y);
//镜像
else if(uv.x<0.2*x) color = 1.-step(.2,uv.y);
//改变黑白亮度
else if(uv.x<0.6*x) color = 0.3+0.5*step(.4,uv.y);
//制造分隔色
else color = step(-.3,uv.y)*(1.-step(.5,uv.y));
fragColor = vec4(vec3(color),1.);
}
CLAMP
f(x,min,max):当x小于min时,返回min;x大于max时,返回max;在min到max之间,返回x值本身。
(具体图像可以查看本节最后一张图的蓝色函数)此处维基
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
//vec2 uv = (2.*fragCoord-iResolution.xy)/min(iResolution.x,iResolution.y);
vec2 uv = fragCoord/iResolution.xy;
float color = 1.;
//clamp实现方式
float max = 0.8,min = 0.2;
if(uv.x<0.33){
if(uv.y>max) color = max;
else if(uv.y>min&&uv.y<max) color = uv.y;
else color = min;
}
//clamp
else if(uv.x<0.66) color = clamp(u