圆形绘制(距离函数)

23 / 30
使用归一化坐标与距离函数 length() 绘制圆形,并通过条件判断输出不同颜色。

上一节学了用 step 计算圆形遮罩。这一节用同样的遮罩,但不输出灰度——而是用它在两种颜色之间切换。


遮罩控制颜色

圆形遮罩的值是 0 或 1。把它传给 mix,就能选择背景色或前景色:

  • 圆内(circle = 1)→ mixfg(亮蓝)
  • 圆外(circle = 0)→ mixbg(深色)

练习

练习代码里 circle = 0.0(全显示背景色)。用 1.0 - step(0.3, d) 计算遮罩,让画面中央出现一个蓝色圆。

答案解析

和 simple-circle 里的遮罩完全一样——圆内为 1,圆外为 0。不同的是这里把它用于 mix,而不是直接作为灰度输出。遮罩的本质是一个 0/1 的开关,mix(a, b, 0) 取 a,mix(a, b, 1) 取 b。

改变 fg 的颜色值,比如 vec3(1.0, 0.4, 0.1) 变成橙色圆。

GLSL 代码编辑器

正确代码预览

当前代码预览