圆形绘制(距离函数)
23 / 30
使用归一化坐标与距离函数 length() 绘制圆形,并通过条件判断输出不同颜色。
上一节学了用 step 计算圆形遮罩。这一节用同样的遮罩,但不输出灰度——而是用它在两种颜色之间切换。
遮罩控制颜色
圆形遮罩的值是 0 或 1。把它传给 mix,就能选择背景色或前景色:
- 圆内(
circle = 1)→mix取fg(亮蓝) - 圆外(
circle = 0)→mix取bg(深色)
练习
练习代码里 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) 变成橙色圆。