GLSL 效果示例
对数螺旋:让旋臂从中心连续展开
调节绕转系数,可见旋臂形状变化而不是整张图简单自转。
在线示例
修改右侧代码,左侧预览会实时更新。
观察什么
调节绕转系数,可见旋臂形状变化而不是整张图简单自转。
实现原理
对半径取对数,再与角度线性组合,得到越接近中心越密的旋臂;中心半径必须夹紧。
找到控制效果的代码
float a=atan(p.y,p.x),r=max(length(p),.01);float spiral=sin(a*4.-log(r)*(3.+u_parameter*8.)+u_time);c=palette(log(r)*.2+spiral*.12)*(0.2+.8*smoothstep(.2,.8,spiral));
动手修改
把角度乘数 a*4. 改成 a*6.。螺旋臂会从四条变成六条,向内卷曲的紧密程度仍由对数半径项控制。
调试与成本
r=max(length(p),.01) 的下限避免把零传给 log。把 .01 提高为 .08,中心被压平的区域会变大,显示的是半径截断,而不是在奇点处增加细节。