GLSL 效果示例

残影拖尾:让运动光点留下会衰减的轨迹

停止运动后旧轨迹继续衰减;上一帧决定下一帧。

在线示例

修改右侧代码,左侧预览会实时更新。

观察什么

停止运动后旧轨迹继续衰减;上一帧决定下一帧。

实现原理

每帧读取上一张轨迹图、衰减后加入新亮点,再交换读写目标。暂停会冻结状态,重置代码会清空历史。

找到控制效果的代码

c=texture2D(u_trail,uv).rgb;

u_trail 标签同时负责历史衰减与新亮点,Fragment 只显示累积的 RGB。把 u_trail 的光源颜色 vec3(.2,.65,1.) 改为 vec3(1.,.2,.1),即可从重新创建的状态生成暖色拖尾。

动手修改

把效果参数从 0 调到 1,保留比例 .92+.06*u_parameter 会从 0.92 变成 0.98。较高值会让运动光点留下维持更久的拖尾。

调试与成本

u_trail 读取一次前一目标,加上当前亮点后交换目标;每帧对应一次衰减。把亮点衰减系数 180. 改为 90.,注入点和拖尾都会变宽,不增加历史采样次数。

深入理解

用到的内置函数

一步步学会这个效果