C++异常处理实战:从RAII到内存池的健壮程序构建
2026/7/29 8:22:18
vec3 palette(float t) { return a + b * cos(2*PI * (c * t + d)); }| 参数 | 作用 | 类比 |
|---|---|---|
a(bias) | 颜色中心点 | 往亮还是往暗走 |
b(amplitude) | 振幅 = 变化范围 | 颜色浓淡跨度 |
c(frequency) | 频率 = t 从 0→1 时循环几圈 | 颜色重复几次 |
d(phase) | 相位 = 三通道的错位偏移 | 决定"先出现什么色" |
d=(0, 0.33, 0.67)→ 彩虹色,最经典的默认值d=(0, 0.10, 0.20)→ 暖色为主,三通道相位挤一起d=(0, 0.20, 0.50)→ 冷蓝绿c=(2,1,0)→ R 循环两次、B 不循环,霓虹感a=0.8, b=0.2→ 高 bias 低振幅,马卡龙色c=3→ 同样的 t 里颜色快速变三圈a=(0.6, 0.3, 0.2)不对称 bias → 偏红橙c=(1,1,0.5)不对称频率 → B 循环更慢,紫色调d的三个分量挤紧(如0, 0.1, 0.2)→ 三通道同步推进,整体偏单色调;拉远(如0, 0.33, 0.67)→ 彩虹色a和b的比例。a高b低 → 粉彩淡色;a=0.5 b=0.5→ 满饱和度c。c=1一圈;c=2两圈(颜色重复一遍);c不对称(如2,1,0)→ 某个通道不动 → 更"怪"更艺// 5. 背景用余弦调色板做渐变(第 4 章详解)
vec3 bg = 0.5 + 0.5 * cos(iTime + uv.xyx + vec3(0.0, 2.0, 4.0));