resultUV.y += cos(uv.x * 3.141592 * frequency + time * timeScale) * scale;
uv.x 는 각 텍셀의 UV.x 에 대해서 cos를 적용하여 x 축에 대해서 서서히 달라지는 효과를 내기 위함이고, frequency 값은 그 정도 (주기)를 곱하는 값 이다. 그리고 time을 더하여 시간에 따라 흔들리도록 구현할 수 있다. timeScale은 그 시간의 속도를 정하는 스케일 값이다. 이후 최종적으로 곱하는 scale 값은 울렁이는 보폭(진폭)으로 볼 수 있다.
이를 Blender 쉐이더로 구현하기 위해서, Time부분은 사용자가 애니메이션에서 적용하는 키 프레임으로 간주하고 구현할 수 있다.
resultUV.y += cos(uv.x * 3.141592 * frequency + time * timeScale) * scale;
이 식은 결과로 들어가는 UV좌표의 y를 조절하는 것이다. 즉 y 부분에 울렁이는 효과를 주는 코드이다.
resultUV.y += cos(uv.x * 3.141592 * frequency + time * timeScale) * scale;
위 식에서 먼저 계산 순서를 보면, uv.x * 3.141592 * frequency 를 계산하고, time * timeScale를 계산한 뒤 서로 더한다. 그리고 이 값을 cos에 넣어 값을 구하고, scale을 곱해주면 된다.
uv.x * 3.141592 * frequency