跳到主要内容
← Math

Math

Soft Circle Cutout

本质是利用step,smoothstep, 三元运算符或是if做判断

实时渲染 · 2D 片段 GLSL

第 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做判断