呼吸色块

1 / 4

📝 练习目标

使用 sin() 函数和时间变量实现周期变化的颜色呼吸动画。

💡 💡 教程内容

学习目标

你将学习如何使用 sin() 函数结合时间变量 u_time,创建一个亮度随时间起伏变化的动态色块动画。

---

核心概念详解

1. sin(time) 的周期性

sin() 函数本身是一个[-1, 1]之间周期循环的函数。我们可以通过缩放和平移将它变成 [0, 1] 范围的亮度值:

`glsl

float brightness = 0.5 + 0.5 * sin(u_time);

`

- 最亮为 1,最暗为 0,中间平滑变化;

- 整体呈现出类似“呼吸”的效果。

---

2. 使用亮度调节颜色

我们将这个 brightness 应用到颜色通道:

`glsl

vec3 color = vec3(brightness, 0.6, 0.9);

`

即让红色分量随时间呼吸,其余颜色保持恒定。

---

3. 输出结果

最终输出颜色即可:

`glsl

gl_FragColor = vec4(color, 1.0);

`

你可以自由调整颜色通道或频率,创建不同风格的动画变化。

GLSL 代码编辑器

正确代码预览

当前代码预览