[special]
바다의 스펙터클: ‹명량› ‹해적› ‹해무›
떠나자, 고래 잡으러 ‹해적: 바다로 간 산적›의 시각효과
글 이화정ㆍ장영엽, ‹씨네21› 기자 / 자료 및 감수 최완호 ‹덱스터디지털› R&D 연구소장
고래의 습격으로 사라진 국새를 찾기 위해 해적과 산적, 개국세력이 소동을 벌인다. 액션 모험극을 내세운 ‹해적: 바다로 간 산적›은 바다를 촬영하지 않고 컴퓨터로 만들었다. 시각효과를 맡은 덱스터 스튜디오는 막대한 작업 분량을 신속히 소화하기 위해 독자적인 솔루션을 개발했다. ‘제피로스’라 불리는 덱스터의 인하우스 소프트웨어를 만나보자.
1,300컷 바다 CG로 만들기
 
“바다에는 나가지 말자.” ‹해적: 바다로 간 산적›(이하 ‹해적›)의 바다 연출 제 1원칙은 바로 바다 촬영은 하지 말자는 것이었다. 조선의 국새를 삼킨 고래, 고래가 살고 있는 바다, 그 바다를 배경으로 한 해적과 산적, 개국 세력의 쫓고 쫓기는 대결. 바다를 빼고는 애초 논할 수 없는 영화가 바다를 배제하고 간다는 건 어불성설처럼 보인다. ‹해적›의 VFX를 담당한 덱스터 스튜디오의 강종익 본부장이 ‘바다 철회론’에 대한 이유를 밝힌다. “바다를 담는다는 건 엄청난 모험이다. 날씨와 상황, 비용 등을 따져볼때 들이는 각오와 수고에 비해서 결과가 좋지 않을 가능성이 크다. 프로덕션 기간, 안전, 비용을 모두 고려한 결과, 제작진과 함께 ‹해적›은 바다에 나가지 않고 진짜 바다 같은 바다를 연출하자고 결정했다.”
  
‹해적›에는 소스 촬영을 위해 찍은 일부 바다 외에는 실제 촬영한 바다가 거의 등장하지 않는다. 전체 바다 분량의 80%가 모두 CG로 구현된 바다다. 배가 항해할 때 화면에 걸리는 바다, 고래가 등장하는 장면에서 수면과 바다 내부, 파이널 시퀀스의 밤바다 장면이 모두 CG로 만들어졌다고 해도 과언이 아니다. 특히 낮 장면에서 CG로 구현된 게 90% 정도라면 밤바다는 촬영 자체가 거의 불가능해 100% CG로 만들었다. 이렇게 만든 바다 컷이 전체 영화 1,900샷 중 무려 1,300컷에 달한다. 손쉬운 비교를 해보자면 충무로의 대표적인 해양 블록버스터 ‹태풍›의 바다 장면이 50컷이었다. 한 컷 한 컷 시뮬레이션을 통해 만들어야 했기 때문에 시간과 공이 상당히 필요한 작업이었다. “기존대로라면 FX팀이 캐시 파일을 만들고 라이팅 팀이 렌더링을 하는 과정이 필요하다. 보통 10초 장면을 연출하려면 10테라 정도의 하드디스크가 필요하다. 한 두 컷이 아니라 1,300컷을 연출하려면 감당이 안 되는 용량이다.”
해적-2
 
해적-3
캐시 파일과 렌더링은 가라
 
덱스터 스튜디오의 R&D팀은 그래서 ‹해적›의 바다 장면 연출을 위해 독자적인 솔루션을 개발했다. 바로 바다를 만드는 시뮬레이션인 ‘제피로스(Zephyros)’(제피로스는 그리스 신화에 등장하는 서풍의 신을 뜻한다)’다. 제피로스는 이미 할리우드에선 일반적으로 사용하는 형태의 소프트웨어이고, 국내 시장에서는 ’마야맥스’로 통용되고 있지만 덱스터의 경우 랜더맨을 통해 효율과 효과를 극대화시킨 별도의 인하우스 소프트웨어를 만들었다는 점에 주목할 만하다. 제피로스의 가장 큰 특징은 바로 캐시 파일을 만들지 않고 바다를 만든다는 것이다. 캐시 파일을 만들면 매 프레임당 25.8 Gb(기가바이트) 용량의 파일에 데이터를 기록해야 한다는 단점이 있다. 10초 분량의 영상에도 6Tb(테라바이트) 이상의 디스크 용량이 필요한 것이다.
 
하지만 제피로스를 이용하면 렌더팜(RenderFarm)에서 렌더링을 할 때 데이터를 바로 만들어내기 때문에, 별도의 파일에 데이터를 기록할 필요가 없다. 따라서 파도의 높이나 스피드 등의 연출을 FX팀의 손을 아예 거치지 않고 라이팅 팀에서 만든다. 캐시 파일을 만들고 렌더링하는 과정 자체가 없어지니 하드디스크 용량이 필요 없을 뿐더러 작업 속도도 기존 대비 엄청나게 빨라질 수 있다. 그야말로 획기적인 프로그램이다. “제피로스가 없었다면 이번 작업은 절대 불가능했다.” 강종익 본부장은 “2시쯤 수정을 요청하면 당일 6시면 그 사항을 반영한 결과물을 확인할 수 있을 정도로 속도가 빠르다”며 이 솔루션이 가진 작업의 효율성을 강조한다. “기존 방식으로 이틀 정도 소요될 작업이 몇 시간 만에 해결되니 그 사이에 적어도 5~6번의 수정을 할 수 있는 시간을 가질 수 있다. 더 정교하게 연출하고 장면을 개발(development)할 수 있는 여건이 주어진 셈이다.”
고래와 물을 자연스레 컨트롤
 
제피로스 프로그램을 통해서 ‹해적›은 생생한 ‘진짜’의 바다를 연출할 수 있었다. 무엇보다도 단 하나의 바다 표면을 사용해 바다를 표현하는 것이 아니라, 카메라에서의 거리별로 여러 개의 바다 표면을 혼합해서 사용한다는 점이 이 프로그램의 장점이다. 이 기술은 ‹해적›의 제작진이 파도의 패턴을 보다 다채롭게 사용할 수 있도록 만든다. 더불어 제피로스를 이용하면 파도의 속도 조절은 물론이거니와, 바람이 없을 때의 잔잔한 파도의 모양부터 풍랑이 칠 때 뾰족뾰족해지는 물의 포말 같은 모양 역시 따로 계산 없이 디자인할 수 있다. ‹해적›의 핵심 장면 중 하나인 고래의 등장은 고래 CG와 함께 제피로스로 만든 바다가 합쳐친 결과물이다. 고래를 중심으로 한 좁은 면적의 연출은 기존 방식대로 캐시 파일을 통해 렌더링 하는 작업이 수반된다. 그걸 시뮬레이션 팀이 제피로스 솔루션을 한 바다 장면과 자연스럽게 블렌딩해 주는 것이다. 관건은 이렇게 작업한 장면들을 따로 떨어지지 않은 한 바다처럼 자연스럽게 연결하는 것이다. “컴퓨터로 만든 물도 일반 물과 같이 제어가 관건이었다.”
 
제피로스 솔루션의 최대 목표는 일반 바다에서 볼 수 있는 물량을 컴퓨터그래픽으로 소화할 수 있냐는 것이다. ‹미스터 고›에서 무수하게 많은 고릴라 털을 실제처럼 만들고 제어할 수 있는 솔루션 ‘젤로스퍼’를 개발한 덱스터 스튜디오의 기술력이 ‹해적›의 작업을 통해 이제 ‘워터 프로세스’로까지 이어졌다.
집중 분석: 질로스와 제피로스
   
덱스터 R&D 강력한 인하우스 소프트웨어를 보유할 것. 시각특수효과 관계자들이라면 누구나 특정 작품의 VFX 작업 과정을 최적화하고 효율성을 향상시키기 위해 인하우스 소프트웨어 개발이 중요하다는 점을 알고 있을 것이다. ILM웨타디지털(Weta Digital), 더블 네거티브(Double Negative)MPC 등의 회사가 세계 최고의 VFX 제작 업체로 각광받게 된 이유 또한 그들이 정교하게 설계된 인하우스 소프트웨어를 자체적으로 개발하고 사용하기 때문이다. ‹해적›의 VFX를 맡은 덱스터 디지털의 최완호 R&D 연구소장은 인하우스 소프트웨어 개발을 통해 “각 프로젝트의 요구 사항에 맞는 커스터마이징을 통한 작업 효율을 향상시킬 수 있고, 최신 기술을 빠르게 도입하고 적용할 수 있으며, R&D 기반의 노하우가 축적되므로 경쟁력 향상을 기대해볼 수 있고 라이센스 비용도 절감할 수 있다”고 말한다. 이렇게 많은 장점을 가진 인하우스 소프트웨어이지만 상용화가 쉽지는 않은 실정이다. 수 년간 소프트웨어에서 발생하는 문제점들을 지속적으로 반영하고 수정해야 하는 문제가 있으며, 국내에 R&D를 수행할 여력이 되는 VFX 스튜디오 또한 드물기 때문이다. 그런 점에서 ‹해적›의 바다를 구현하는 데 사용된 덱스터의 독자적인 인하우스 소프트웨어, 제피로스의 탄생에 주목해볼 만하다.
 
질로스의 세부 모듈 제피로스의 기능에 대해 본격적으로 짚어보기 전에, 이 프로그램에 앞서 덱스터 디지털이 개발한 질로스(Zelos) 시스템에 주목할 필요가 있다. 질로스는 그리스 신화에 등장하는 ‘질투 및 경쟁의 화신’의 이름을 차용한 소프트웨어로, 다양한 수학, 기하학, 물리 관련 수치 계산 모듈로 구성되어 있다. ‹미스터 고›의 털 제작에 사용된 질로스퍼(ZelosFur), 서극 감독의 영화 ‹적인걸 2: 신도해왕의 비밀›(이하 ‹적인걸2›)의 바다 제작에 사용된 질로스워터(ZelosWater)/질로스오션(ZelosOcean)이 질로스의 대표적인 세부 모듈이다. 이 중 ‹적인걸 2›에 사용된 질로스오션이 바로 ‹해적›에 사용된 제피로스의 전신이다.
 
바다 시뮬레이션 알고리즘 질로스오션은 수면의 반사와 굴절 등을 표현하는 바다 표면을 렌더맨(RenderMan)을 이용해 함께 렌더링할 수 있도록 하는 인하우스 소프트웨어다. 덱스터는 이 프로그램을 개발하는 과정에서 ‹라이프 오브 파이›의 시각효과를 맡은 VFX 업체 리듬 & 휴즈(Rhythm & Hues)의 기술자 제리 테센도르프가 집필한 논문 ‹시뮬레이팅 오션 워터›의 알고리즘을 사용했다. 테센도르프의 방식이 가장 효율적이면서도 사실적인 파도의 형태와 움직임을 만들어낼 수 있다고 봤기 때문이다. 무엇보다 테센도르프의 알고리즘을 사용하면, 파도를 만드는 대표적 원인인 바람의 움직임을 사실적이고 경제적으로 만들어낼 수 있다는 강점이 있었다. 더불어 잔잔한 바다에서 순항하는 배를 부감에서 풀샷으로 잡을 때, 바다의 표면에는 브레이킹 웨이브(breaking wave)가 발생하는데 기존의 워터 시뮬레이션(water simulation) 방식을 이용할 때 발생할 수 있는 리소스에 한계가 있었다. 이런 점 등을 고려해 테센도르프 방식의 하이트 필드(hight field)로 근사하여 계산하는 방법이 주효할 거라고 덱스터 제작진들은 판단했다. (테센도르프의 자세한 내용은 클릭)
 
문제는 렌더링 하지만 질로스오션을 사용할 때 몇 가지 문제가 있었다. 이 프로그램은 폴리곤이 적은 가벼운 메쉬(mesh)에 대해서는 빠른 결과를 보여주지만, 영화의 대규모 해상 장면에서 사용되는 무거운 메쉬에 대해 많은 문제점을 가지고 있었다. 지오메트리 데이터(geometry data) 이외에도 폼 밸류(foam value), 배 등의 물체에 따른 거리 맵 등의 데이터가 추가적으로 필요하기 때문에 이러한 데이터들을 파일의 형태로 출력할 때 매우 많은 디스크 공간과 파일 기록 시간이 필요했다. 바다에 대한 수정이 비일비재하게 일어나는 상황이었는데 이에 대한 빠른 대응 또한 쉽지 않았다. 캐시 파일의 크기가 대용량이다보니, 캐시를 적재하는 데 필요한 네트워크의 과부하가 렌더링 시간을 증가시키는 요인으로 작용했다.
 
신속 정확한 대응 ‹해적›에 사용된 제피로스는 이러한 질로스오션의 단점을 보완한 시스템이다. 제피로스는 캐시 파일을 생성하지 않고, 렌더링시 필요한 부분에 대해서만 바다 표면을 만드는 방식으로 운영되는 시스템이다. 4개의 정점을 가지는 사각 평면 메쉬(mesh)를 가지고 수평면을 생성하고, 필요한 10여개의 수치 값들을 조절해 렌더링을 하면 오션 웨이브 패턴(ocean wave pattern)이 디스플레이스먼트(displacement)로 적용된 이미지를 얻게 되는 것이다. 제피로스의 경우 캐시 파일 생성이 필요 없기 때문에 질로스오션이 가지고 있던 여러 가지 문제점들을 해결할 수 있었고, 수정 요구 사항에도 빠른 대응이 가능했다. ‹해적›의 제작진들은 1천 컷 정도의 쇼트를 제피로스를 이용해 작업했다. 만약 이러한 소프트웨어가 없었더라면, 주어진 기간 내에 영화를 제작해 개봉하는 것이 불가능했을 거라고 덱스터 관계자들은 말한다.
제피로스-발표-2
 
제피로스-발표-3