如何在 GLSL 中制作正弦波圆
How to make a sine wave circle in GLSL
我试图用正弦波扭曲圆的绘制,使其在 OpenGL 着色器中看起来像这样。
我找到了很多使用中心点的半径 length
来画圆的例子,但我一直无法弄清楚如何用正弦波调制它来扭曲圆的半径。任何帮助将不胜感激!
使用从片段到中心的角度作为 sin
函数的输入,并将结果添加到长度。
vec2 position = gl_FragCoord.xy - resolution / 2.0;
float color = smoothstep(2.0, 4.0, abs(length(position) - 50.0
+ sin(atan(position.y, position.x) * 4.0 - 3.141 / 2.0) * 7.0));
gl_FragColor = vec4(vec3(color), 1.0 );
我试图用正弦波扭曲圆的绘制,使其在 OpenGL 着色器中看起来像这样。
我找到了很多使用中心点的半径 length
来画圆的例子,但我一直无法弄清楚如何用正弦波调制它来扭曲圆的半径。任何帮助将不胜感激!
使用从片段到中心的角度作为 sin
函数的输入,并将结果添加到长度。
vec2 position = gl_FragCoord.xy - resolution / 2.0;
float color = smoothstep(2.0, 4.0, abs(length(position) - 50.0
+ sin(atan(position.y, position.x) * 4.0 - 3.141 / 2.0) * 7.0));
gl_FragColor = vec4(vec3(color), 1.0 );