feTurbulence 는 펄린 노이즈 비슷한 무작위 패턴을 그리는 필터 프리미티브입니다. 그 자체로는 알록달록한 정적처럼 보이지만, feDisplacementMap 에 in2 로 물려주면 "이 노이즈의 R·G 채널 값만큼 원본 픽셀을 x·y로 밀어내라"는 지도가 됩니다 — 결과물은 원본이 노이즈의 굴곡을 따라 일렁이는 모습입니다.
baseFrequency 는 노이즈의 촘촘함(값이 작을수록 크고 부드러운 물결, 클수록 잘게 흔들리는 지글거림)을, feDisplacementMap 의 scale 은 얼마나 세게 밀어낼지를 정합니다. 이 데모는 두 값을 매 프레임 사인파로 흔들어서 물속에 잠긴 것 같은 지속적인 일렁임을 만듭니다.
주의점은 비용입니다 — 노이즈 생성과 변위 계산이 매 프레임 전체 필터 영역에서 다시 일어나므로, 넓은 영역이나 페이지 전체에 걸면 눈에 띄게 무거워집니다. 텍스트나 로고 같은 작은 요소에 한정해서 쓰는 게 안전합니다.
언제 쓰나
텍스트 하나·로고 하나처럼 좁은 영역의 "물속·아지랑이" 느낌에 씁니다. numOctaves 는 2 정도로 낮게 유지해서 비용을 줄이세요.