step函数
参数是float
step(edge,x):当x>edge时返回1,否则返回0
#ifdef GL_ES
precision mediump float;
#endifuniform vec2 u_resolution;void main(){vec2 st = gl_FragCoord.xy/u_resolution.xy;float f = step(0.5, st.x);gl_FragColor = vec4(f, 0, 0, 1.0);
}
类似下面的javaScript代码
float myStep(float edge, float x){if(x>= edge){return 1.0;}else{return 0.0;}
}
参数是二维向量
-
对于step函数的行为:
- step函数比较两个值,如果第二个值大于等于第一个值,则返回1.0,否则返回0.0
- 当参数是二维向量时,这个比较是在两个向量的对应分量上分别进行的。
-
具体的比较过程:
- 比较a.x 和b.y:如果b.x >= a.x,则在这个维度上返回1.0,否则返回0.0。
- 比较a.y 和b.y:如果 b.y >=a.y,则在这个维度上返回1.0,否则返回0.0。
-
最终结果:
- 最终会得到一个二维的结果向量,其x分量是基于a.x 和b.x的比较结果,y分量是基于a.y和b.y的比较结果。