장원영이 되는 주파수를 두 번 만들었다. 처음에는 외곽선을 원운동의 합으로 그렸고, 다음에는 사진을 물결무늬의 합으로 쌓았다. 1차원, 2차원. 그러면 다음 질문은 이미 정해져 있는 셈이다. 3차원에서도 될까?

평면파가 없는 세계

2차원까지는 푸리에 변환이 곧바로 통했다. 이미지가 놓인 평면이 끝까지 평평했기 때문이다. 평면 위에서는 “이 방향으로 이만큼 촘촘하게” 흐르는 줄무늬, 즉 평면파(plane wave)가 어디서나 똑같이 정의되고, 그 줄무늬들이 완전한 basis를 이룬다.

그런데 머리는 곡면이다. 곡면 위에는 $\cos\big(2\pi(u\,s+v\,t)\big)$를 쓸 좌표 $(s,t)$ 자체가 없다. 정수리에서 출발한 줄무늬가 턱을 돌아 나올 때까지 “곧게” 흐른다는 게 무슨 뜻인지조차 애매해진다. 분해는 하고 싶은데, 분해할 때 쓸 파동부터 다시 찾아야 하는 상황이다.

일단 머리부터

분해할 대상이 먼저 필요하다. 사진 한 장에서 머리 전체의 3D 메쉬를 복원해 주는 모델(PanoHead)로 장원영의 풀헤드 메쉬를 만들었다. 약 4만 개의 정점으로 이루어진, 뒤통수까지 닫혀 있는 곡면이다.

구에 욱여넣으면 생기는 일

곡면 위의 푸리에로 가장 유명한 건 구면조화함수(spherical harmonics)다. 그래서 처음에는 머리를 구에 매핑한 뒤 구면조화함수로 분해했다.

그러나 얼굴 메쉬는 구가 아니기 때문에, 구에 억지로 메쉬를 쑤셔넣으면 코나 귀처럼 튀어나온 부분이 심하게 늘어나고, 그 왜곡이 복원 결과에 그대로 묻어났다. 저주파만 남기면 둥글둥글해지는 게 아니라 흘러내렸다. 이 방식은 폐기.

표면에는 표면의 파동이 있다

드럼 막 위에 모래를 뿌리고 진동시키면, 모래가 마디선을 따라 모여 무늬를 만든다. 클라드니 패턴(Chladni pattern)이다. 막이 울릴 수 있는 모양, 즉 eigenmode가 막의 형태에 의해 이미 정해져 있기 때문이다.

임의의 곡면도 마찬가지다. 곡면 $M$ 위에서 라플라스–벨트라미 연산자(Laplace–Beltrami operator)의 eigenfunction을 구하면,

\[\Delta_M\,\varphi_k = -\lambda_k\,\varphi_k\]

이 $\varphi_k$들이 바로 그 곡면 고유의 “사인파”가 된다. 이른바 manifold harmonics. eigenvalue $\lambda_k$가 작으면 표면을 크게 가로지르는 완만한 파동이고, 크면 촘촘한 잔물결이다. 실제로 구 위에서 이 문제를 풀면 정확히 구면조화함수가 나온다. 즉 아까 그 basis의 일반화인데, 결정적인 차이가 있다. 이번에는 구가 아니라 장원영의 머리 모양 그 자체가 basis를 결정한다.

메쉬에서는 cotangent Laplacian의 eigenvector를 구하는 문제가 된다. 머리 메쉬에서 저주파부터 3,000개의 모드를 계산했다.

머리 표면의 eigenmode들
머리 표면의 eigenmode들. 낮은 모드는 머리를 크게 가로지르는 파동, 높은 모드는 촘촘한 잔물결이다.

형태를 분해하기

이미지에서는 픽셀의 밝기를 분해했지만, 여기서는 정점의 좌표 자체를 분해한다. 표면 위의 함수라면 무엇이든 이 basis에 투영할 수 있는데, $x,\ y,\ z$ 좌표도 표면 위에 정의된 함수이기 때문이다.

\[\mathbf{x} \;\approx\; \sum_{k=1}^{K} \langle \mathbf{x},\, \varphi_k \rangle\, \varphi_k\]

저주파 모드는 큰 덩어리 성분을, 고주파 모드는 디테일을 담당한다. 3,000개를 모두 더하면 장원영의 머리로 수렴한다.

저주파에서 고주파로 형태 누적
모드를 저주파부터 누적한 결과. 감자에서 장원영까지.

쌓이는 과정 보여주기

이번에도 한 번에 합쳐 버리면 재미가 없으니, 쌓이는 과정을 영상으로 만들었다.

사진에서 성근 저주파 머리가 떠오르고, 모드가 밴드 단위로 차례차례 더해진다. 각 밴드는 제자리에 바로 붙는 게 아니라 감쇠 진동(damped oscillation)으로 출렁이다가 정착하는데, 새 디테일이 도착할 때마다 표면이 한 번씩 울리는 셈이다. 형태가 파동의 합이라는 사실이 움직임으로도 드러나는 부분이라 마음에 든다. 화면 구석의 작은 머리에는 지금 더해지고 있는 모드의 standing wave 패턴을 띄워 두었다. Chladni pattern의 3차원판이다.

3,000개의 모드가 다 쌓이면 원본 사진의 색이 표면에 입혀지고, 완성된 머리가 한 바퀴 돈 다음, 처음의 사진 속으로 도로 들어가며 영상이 끝난다. 끝 프레임이 첫 프레임과 같아서, 영상은 무한히 반복된다.

마무리

1차원에서는 선을 원운동으로, 2차원에서는 면을 물결로, 3차원에서는 형태를 그 형태 고유의 진동으로 받아썼다. 같은 사람을 차원을 하나씩 올려 가며 세 번 받아쓴 셈이다.

물론 여전히, 틀어 놓는다고 내 얼굴이 장원영이 되진 않는다. 뇌절은 여기까지.