形状组合

30 / 30
将圆形与矩形的遮罩组合在一起,学习用 min/max 或简单的合成方式构建更复杂的图形。

这是模块四的综合练习。把圆形和矩形的遮罩合并成一个复合形状——用 max 取两个遮罩的并集。


max 实现形状叠加

两个遮罩都是 0/1 的值,对每个像素取 max

  • 任意一个为 1 → 结果为 1(在某个形状内)
  • 两者都为 0 → 结果为 0(在两个形状外)

这等价于把两个形状「合并」成一个。


矩形遮罩的写法

abs(uv - center) 测量到中心的距离,再和半尺寸比较:


圆形遮罩的写法


练习

练习代码里 rect = 0.0circle = 0.0(全背景色)。分别构造这两个遮罩,再用 max 合并。

答案解析

矩形和圆的形状不同,max 让像素只要属于任意一个形状就显示前景色。

试试用 min(rect, circle) 替代 max——min 是两个形状的交集,只有两者都覆盖的区域才会显示。

GLSL 代码编辑器

正确代码预览

当前代码预览