你将学习如何使用 sin()
函数结合时间变量 u_time
,创建一个亮度随时间起伏变化的动态色块动画。
---
sin(time)
的周期性sin()
函数本身是一个[-1, 1]之间周期循环的函数。我们可以通过缩放和平移将它变成 [0, 1] 范围的亮度值:
`
glsl
float brightness = 0.5 + 0.5 * sin(u_time);
`
- 最亮为 1,最暗为 0,中间平滑变化;
- 整体呈现出类似“呼吸”的效果。
---
我们将这个 brightness
应用到颜色通道:
`
glsl
vec3 color = vec3(brightness, 0.6, 0.9);
`
即让红色分量随时间呼吸,其余颜色保持恒定。
---
最终输出颜色即可:
`
glsl
gl_FragColor = vec4(color, 1.0);
`
你可以自由调整颜色通道或频率,创建不同风格的动画变化。