GLSL 效果示例
星际穿梭:让星点从远处拉成长线
速度提高时点变成长线,近处星迹更长。
在线示例
修改右侧代码,左侧预览会实时更新。
观察什么
速度提高时点变成长线,近处星迹更长。
实现原理
角度决定星迹方向,倒数半径与时间决定径向运动;越靠边缘的光迹伸展越明显。
找到控制效果的代码
float a=atan(p.y,p.x),r=max(length(p),.01);float sector=floor(a*130.),phase=fract(1./r*.5+u_time*(.5+u_parameter*3.)+hash(vec2(sector)));float line=pow(.5+.5*cos(a*130.),24.)*pow(phase,15.);c+=vec3(.5,.7,1.)*line*smoothstep(.08,.3,r);
动手修改
把 u_parameter 从 0 调到 1,相位速度 .5+u_parameter*3. 会从 0.5 变为 3.5。径向星轨会加速运动,角向扇区位置保持固定。
调试与成本
倒数半径由 max(length(p),.01) 限制,中央淡出使用 smoothstep(.08,.3,r)。把 .08 提高到 .2,中心留白会扩大;这些星轨按像素计算,没有粒子缓冲。