渐变效果

14 / 15
学习创建多种渐变效果,包括线性渐变、径向渐变、角度渐变和动态混合

这个教程把四种渐变组合在一起,并用 u_time 让它们动态混合。核心结构是:

下面逐一拆解四种渐变的原理。


线性渐变:对角方向

把 x 和 y 坐标相加再除以 2,得到一个从左下(暗)到右上(亮)的对角渐变。


径向渐变:从中心向外

distance 计算像素到中心的距离,距离越大越暗。1.0 - dist * 2.0 把中心(距离 0)映射为最亮,边缘映射为最暗。


角度渐变:围绕中心旋转

atan 算出像素相对中心的角度,范围是 -π 到 +π。加上 π 再除以 2π,把它归一化到 0–1,然后映射为颜色。


波浪渐变:随时间振荡

sin 在 -1 到 1 之间振荡,* 0.5 + 0.5 把它移到 0–1 范围。u_time * 2.0 让波浪随时间向右滚动。


试着改一改

改动效果
u_time * 2.0 改为 u_time * 5.0波浪滚动更快
uv.x * 10.0 改为 uv.x * 3.0波浪变宽
u_time * 0.5 改为 0.0停止动态混合,定格在一个状态
smoothstep(0.0, 1.0, finalColor) 注释掉对比度降低,颜色更柔和

练习

在练习区,给线性渐变的蓝色分量填入 (uv.x + uv.y) * 0.5,让对角渐变显示出蓝色调。

答案解析

uv.x 作为红色通道,从左到右由暗变亮。uv.y 作为绿色通道,从下到上由暗变亮。(uv.x + uv.y) * 0.5 作为蓝色通道,是两者的均值,在中心区域产生蓝色调。

练习代码 TODO 注释处已经有完整的变量框架,只需把蓝色分量从占位符改为 (uv.x + uv.y) * 0.5 即可。

试着把蓝色分量改为 sin(uv.x * 6.28) * 0.5 + 0.5,让蓝色在横向上产生周期性变化。

GLSL 代码编辑器

正确代码预览

当前代码预览