GLSL 效果示例

漫画速度线:让笔触从画面边缘指向中心

中心保留空白,外围线条按角度分组闪动。

在线示例

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

观察什么

中心保留空白,外围线条按角度分组闪动。

实现原理

按角度分组的窄条只在外围出现,离散时间控制闪动;中心遮罩给主体保留空白。

找到控制效果的代码

float a=atan(p.y,p.x),r=length(p);float id=floor(a*90.);float line=pow(.5+.5*sin(a*90.),14.);float flicker=.4+.6*hash(vec2(id,floor(u_time*8.)));c=mix(vec3(.9,.94,1.),vec3(.1,.15,.3),line*flicker*smoothstep(.25,.9,r)*(0.4+u_parameter));

动手修改

把径向中心遮罩 smoothstep(.25,.9,r) 换成 smoothstep(.5,.9,r)。中央留白会扩大,角向速度线仍集中在画面外围。

调试与成本

线条方向与宽度来自 pow(.5+.5*sin(a*90.),14.),哈希则提供分段闪动。把指数 14. 降为 6.,每条线会变宽,角向扇区数不变,也不需要添加粒子几何。

用到的内置函数

一步步学会这个效果