GLSL 效果示例
全息投影:让扫描带扫过带抖动的剪影
透明条纹与少量水平错位叠在同一剪影上,轮廓始终可辨。
在线示例
修改右侧代码,左侧预览会实时更新。
观察什么
透明条纹与少量水平错位叠在同一剪影上,轮廓始终可辨。
实现原理
剪影遮罩与高频扫描线相乘,另加一条慢速亮带。随机错位只作用于少量水平行。
找到控制效果的代码
vec2 q=p;q.x+=step(.95,noise(vec2(floor(q.y*25.),floor(u_time*8.))))*.08;float shape=1.-smoothstep(.45,.46,length(q));float scan=pow(.5+.5*sin(q.y*180.),4.);float band=exp(-pow((q.y-mod(u_time*.3,2.)+1.)*15.,2.));c+=vec3(.05,.8,1.)*shape*(.2+.55*scan+band)*(0.5+u_parameter);
动手修改
把 sin(q.y*180.) 改为 sin(q.y*90.)。细扫描线的间距会加倍,宽亮带仍按 u_time*.3 设定的速度移动。
调试与成本
只有 step(.95,noise(...)) 选中的横条才会跳动。把 .95 降为 .8,更多横条会发生位移;圆形遮罩在偏移后计算,因此这些横条里的剪影本身也会移动。