第 1 课:Soft Circle Cutout
我的解:本质是利用step,smoothstep, 三元运算符或是if做判断
我的解
uniform float iTime;
uniform vec2 iResolution;
void main() {
vec2 uv = gl_FragCoord.xy / iResolution.xy;
uv *= 2.0;
uv -= 1.0;
uv.x *= iResolution.x / iResolution.y;
vec2 circleCenter = vec2(cos(iTime), 0.0);
float circle = 1.0 - step(0.60, distance(circleCenter, uv));
vec3 shapeColor = vec3(0.38, 0.12, 0.93);
vec3 result = mix(vec3(0.12), shapeColor, circle);
gl_FragColor = vec4(result, 1.0);
}
复盘笔记
- 本质是利用step,smoothstep, 三元运算符或是if做判断