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.,每条线会变宽,角向扇区数不变,也不需要添加粒子几何。