形状组合
30 / 30
将圆形与矩形的遮罩组合在一起,学习用 min/max 或简单的合成方式构建更复杂的图形。
这是模块四的综合练习。把圆形和矩形的遮罩合并成一个复合形状——用 max 取两个遮罩的并集。
max 实现形状叠加
两个遮罩都是 0/1 的值,对每个像素取 max:
- 任意一个为 1 → 结果为 1(在某个形状内)
- 两者都为 0 → 结果为 0(在两个形状外)
这等价于把两个形状「合并」成一个。
矩形遮罩的写法
用 abs(uv - center) 测量到中心的距离,再和半尺寸比较:
圆形遮罩的写法
练习
练习代码里 rect = 0.0,circle = 0.0(全背景色)。分别构造这两个遮罩,再用 max 合并。
答案解析
矩形和圆的形状不同,max 让像素只要属于任意一个形状就显示前景色。
试试用 min(rect, circle) 替代 max——min 是两个形状的交集,只有两者都覆盖的区域才会显示。