Sunday, January 22, 2012

TinTin 의 라이팅과 Weta Digital 의 PantaRay


CGSociety(http://www.cgsociety.org)에서 영화'틴틴'의 제작과 관련하여 Weta Digital PantaRay 에 관한 자세한 인터뷰 기사를 실었습니다.
이 글은 편집자(Paul Hellard)의 허락 하에 번역되었습니다. 무단 전재는 절대로 금합니다.
번역오류에 대해서는 댓글로 남겨주세요.



원문 링크 : http://www.cgsociety.org/index.php/CGSFeatures/CGSFeatureSpecial/tintin


웨타 디지털은 올해에도 멋진 여러 영화들을 제작하며 잘나가고 있습니다. ‘틴틴의 모험으로 올해 VES후보에도 올랐습니다. 여기 CGSociety 에서는 이런 근사한 프로젝트들을 빛내주는 요소들에 대해 살펴보겠습니다.


Lighting Tintin

라이팅에 측면에서 보자면, 파이프라인은 아바타 당시 개발되었던 것의 확장이지만 더 복잡해졌는데, 이는 주로 웨타의 indirect pipeline spherical harmonics pipeline의 개선 때문입니다. 그리고 웨타의 시각효과 수퍼바이저 Keith Miller씨에 따르면, “아마도 가장 큰 부분 중 하나는 그림자 데이터를 생성하기 위한 판타레이의 사용이 아닐까 합니다.” 판타레이는 웨타디지털의 레이트레이서입니다. “아바타 제작당시 우린 주로 spherical harmonics를 계산하기 위해 판타레이를 사용했습니다. 하지만 틴틴에서는 그림자 레이트레이싱을 처리하는 데까지 능력을 확장했고, 빛에 의한 그림자 부분이 더욱 생동감 있고 정확해 졌습니다.”

틴틴은 이번 영화에서 작업하기 더욱 어려운 캐릭터들 중 하나였습니다.
틴틴을 작업하면서 어려웠던 점은 단순하게 생긴 캐릭터라는 점이었습니다. 그는 그저 계란형 얼굴에 두 눈동자를 가지고 있고 별다른 작업거리가 없어요. 우린 Hergé 의 묘사를 살리면서도 시각적으로 재미나고 조명이 쉽도록 만들기 위해 캐릭터에 생기를 불어넣으려고 수 년간을 반복해서 작업했습니다. 우린 틴틴 캐릭터를 탐구하는데 수 백번의 반복작업을 했습니다.” Miller씨가 말합니다.
이는 표면에 변화가 별로 없는 단순한 형태를 라이팅하는 것이 힘들기 때문입니다. 틴틴 캐릭터는 소년이었기 때문에, 해독 선장처럼 주름살이나 상처가 있지도 않고 눈을 그리기 위한 재미난 디테일들이 없었을 뿐 아니라 톰슨 쌍둥이처럼 커다란 코와 턱살로 재미난 표정을 연출하지도 않습니다. 틴틴의 표정이나 턱, 그리고 뺨 등을 살리기 위해 해결책이 필요했습니다.





폭풍우 치는 바다 역시 어려운 라이팅 과제였습니다. 웨타에서는 번개 지오메트리를 생생하는 툴을 개발했지만 여전히 번갯불이 그 구름과 통합되도록 해야 했습니다. Miller씨가 말합니다. “우린 수 많은 참고자료를 연구했습니다. 번갯불과 그로 인한 밝기, 그리고 구름 사이에 매우 흥미로운 일들이 있더군요. 구름 속에 포함된 것 같은 느낌의 라이팅을 얻는 건 꽤 힘들었습니다.”
이를 위해서, 웨타는 자신들의 인하우스 구름 소프트웨어에 새로운 기능을 추가했습니다. 마야와 랜더맨 양쪽의 파이프라인에 통합된 볼류메트릭 모델링 및 랜더링 시스템입니다. “인터렉티브한 라이팅 프리뷰가 가능하고 딥 알파 합성이 가능한 직관적인 툴로 TD들이 빠르게 반복작업을 할 수 있습니다.”

번개와 구름들과의 상호작용에 큰 도움을 준 것은 fast approximate multiple scattering기술의 도입입니다.
소프트웨어 개발자 Antoine Bouthors씨는, 복수의 단일 스캐터링 알고리즘에 서로 다른 변수들을 제공함으로써 얻어진 fast approximate multiple scattering(true multiple scattering은 아니지만)을 위한 지원을 추가하였습니다.
이 접근방법은 매우 적은 계산으로도 실제 멀티 스캐터링과 유사한 결과를 얻을 수 있게 해줍니다. 우린 또한 번갯불 지오메트리로부터 직접 캐시를 생성해서 구름을 비추는데 사용했습니다. 번갯불 주위로 뜨거운 중심부와 넓게 퍼지는 빛 효과를 얻을 수 있는데 이것들이 정말 근사하게 생성되죠.”
웨타에서는 이 구름소프트웨어를 구름 뿐만 아니라 안개나, god rays, 횟불빛 등 다양한 부분에도 사용했습니다.

웨타는 또한 자신들의 간접조명 파이프라인을 개선시켜서 멀티바운스 간접디퓨즈를 통합시키고 새로운 간접스펙큘러 파이프라인을 만들었는데, 간접조명 캐시로부터 대략적인 글로시 반사를 얻을 수 있도록 해 줍니다.
Spherical Harmonics(SH)파이프라인의 개선은 데이터가 생성되고 저장되는 측면과 사용되는 측면 모두를 고려했습니다. 이는 SH를 생성하기 위해 PantaRay를 사용했기 때문입니다.
아바타 이후로, 웨타는 판타레이에 CUDA지원을 향상시키는 작업을 했습니다. “우린 아바타때보다 훨씬 빨리 규모 순서대로 하모닉스 패스들을 작업할 수 있었는데, 정말 커다란 데이터셋을 처리하기 때문에 이는 매우 중요했습니다.”


WETA DIGITAL's PANTARAY

웨타의 랜더링 수석 연구원 Luca Fascione는 시각효과 수퍼바이저 Wayne Stables와 함께 틴틴에 참여한 판타레이 전문가였습니다. 스필버그는 영화 속 조명들이 대부분 사실적인 조명들로 빛이 나고, 자주 사각이나 구형 Area Light들을 사용하길 원했습니다.
Stables의 설명에 따르자면 그로 인해 우린 그림자의 레이트레이싱을 시작해야 한다는 것과, 섀도우 맵을 사용하게 아니라 이를 레이트레이싱을 해서 정확히 계산해야 한다는 것을 알았습니다.” 이 과정은 라이팅 파이프라인을 재구성해야 하는 주요인이 되었습니다. 아바타에서는 이미지기반 라이팅을 위한 오클루젼 정보를 계산하기 위해 판타레이를 사용했지만, 이번에는 그림자를 계산하기 위해서 확장을 할 필요가 있었습니다.

아바타를 끝낼 당시, 웨타의 레이트레이서는 이미 매우 빠르고 거대한 지오메트리를 손쉽게 처리할 수 있었습니다.
부족한 것이라곤 그림자 정보를 연산하는 루틴을 추가한 뒤 어떻게 이 모든 정보를 저장하여 랜더링 하는 동안 쉽게 재사용 할 수 있도록 할 것인가 하는 아이디어를 찾아내는 것이었습니다.
판타레이는 뷰티패스에 앞서 실행되어(프리컴퓨팅 엔진이므로) 모든 그림자에 대한 방대한 양의 데이터를 저장한 다음 뷰티패스 중에 랜더러에서 다시 읽어오게 됩니다.

모든 광원들은 씬 내의 각 버텍스에 그림자 정보를 저장하고 캐시를 생성하는데 대부분의 경우 프레임당 수 기가바이트에 이릅니다. 웨타에서는 이 파일들을 작업과정의 일부로서 끊임없이 정리할 필요가 있습니다.
이 알고리즘은 전통적인 섀도우 맵과는 다른데, Fascione씨의 설명에 따르자면: “만약 솔리드 오브젝트에 대해 전통적인 섀도우 맵을 가지고 레이트레이스 섀도우와 비교를 한다면, 본질적으로 빛을 받은 픽셀당 하나의 광선에 대해서 얘기를 하는 것입니다. 털이나 안개와 같은 다량의 매우 얇거나 혹은 투명한 것들로 섀도우 맵을 가져가 본다면, 털코트가 얼마나 두꺼운가 혹은 안개가 얼마나 짙은가에 따라서 픽셀당 수십~수백의 픽셀당 광선이 필요하게 됩니다.”
이게 Deep Shadows라고 불리는 기술이며, ‘몬스터 주식회사를 위해 픽사에서 개발되었고 거의 모든 스튜디오에서 수많은 영화에 사용되고 있습니다.
  
 “여기 소프트 섀도우라고 불리는 또 하나의 다른 기술이 있는데, 이 기술은 표준 Area light의 네 모서리의 각각으로부터 섀도우맵을 계산하며 빛을 받은 픽셀당 네 개의 광선을 갖게 됩니다. 자연스럽게 두 기술을 합쳐서 소프트 딥 섀도우란 기술을 얻게 됩니다. 이제 이를 판타레이가 동작하는 방식과 비교할 수 있습니다 : 모든 그림자에 완전한 레이트레이스 이죠.” Fascione씨가 말합니다.
이는 씬 버텍스당 대략 수백에서 수천의 광선이 있으며, 수행할 작업의 양이 일반적인 경우보다, 심지어 소프트 딥 섀도우 보다도 열배에서 백배나 많아진다는 의미입니다.
판타레이를 사용해서, 웨타는 이 모든 작업을 무거운 딥 섀도우 랜더의 2배의 시간에 해낼 수 있었으며 CUDA를 탑재한 GPGPU하드웨어에서 실행될 때는 더욱 절약이 됩니다.
우린 정확히 한가지의 매우 특화된 작업을 위해 고안된 매우 특별한 툴을 가지는 호사를 누리고 있기 때문에, 이를 완전히 최적화 시키고 할 수 있는 한 최대로 잘 운영할 수 있습니다. 과거의 과정과 비교하자면, 전환시에는 약간 느리긴 하지만 수퍼바이저들이 영화의 시각적 톤을 일치시키기 위해 찾던 빛과 그림자의 품질을 향상시켜 줍니다.”
  
특히 이 점이 두드러진 몇 가지 사례는 틴틴의 아파트 내부인데, 매우 단순화된 박스 모양의 양쪽에 창이 있는 방입니다.
우린 몇 개의 얇은 망사 커튼을 설치하고 마치 사운드 스테이지에 있고 사무실의 내부를 촬영하는 것 처럼 처리했습니다. 결국 창문을 통해 들어오는 크고 부드럽게 확산된 area 광원들로 부드러운 자연광을 얻게 되었습니다.
거긴 우리가 섀도우 맵으로 처리하려 시도했던 장소였는데, 매우 신속하게 모두 부서져 내리기 시작했을 수도 있었습니다. 만약 그런 크고 부드러운 그림자들을 원한다면 그냥 레이트레이싱을 시작해야 합니다.
  
언제나처럼, 디스크 공간은 주요 관심사였습니다. 수 많은 샷들이 커다란 드라마 샷들로 길이가 수백프레임이였습니다.
만약 매 프레임 모든 조명들로부터의 그림자 데이터를 저장하고 하나의 디스크에 넣는다면, 웨타의 연산능력과 네트웍 구성조차도 네트웍에 손상을 입을 위험성을 항상 가지고 있습니다.
우린 프레임당 데이터를 배분하기 시작했습니다. 그래서 만일 1000프레임짜리 샷이 있다면, 매 프레임당 데이터는 분할된 디스크 공간에 존재하게 되고, 이는 서로 다른 서버에 분산되고 네트웍으로 균형이 유지된다는 뜻입니다. 우린 모든 정보들을 프리컴퓨팅을 하여 방대한 양의 정보를 저장하기 때문에, 이러한 작업을 만들기 위한 기반을 최적화 해야 했습니다.”
  
판타레이는 CPU GPU에서 동작했지만, 아바타에서는 CPU코드 패스가 빠르고 비교적 간단했습니다. “우린 틴틴의 말미에 가서 크게 속도를 높이려 애를 썼습니다. 가장 좋았던 경우에는 20에서 50배까지 향상되었죠.”
새로운 NVidia카드를 통해 우린 GPGPU 코드패스 속도를 크게 향상시켜서 5배에서 10배까지 빨라졌는데 당연히 이는 실질적 절약이 되었습니다.
사실 실제로 샷 전환 시간을 위한 많은 지체 없이도 5~10배 가량 증가된 크기의 씬을 다룰 수 있었다는 뜻입니다.
그 경우 대부분, 같은 작업을 빠르게 하기 보다는 영화의 모양새를 향상시키기 위해 기술을 사용하는 경향이 더 많이 있습니다.”
  
전 우리가 사실상 뭔가를 레이트레이싱을 할 수 있는 단계에 있다는 것이 정말 좋습니다. 틴틴은 지금까지의 영화들 중에서 가장 레이트레이싱 된 영화입니다. 그리고 그걸 가능하게 한 판타레이와 같은 기술을 가지고 있다는 점에서, 그림자든 간접조명이든 또는 다른 무엇이든 우리가 레이트레이싱을 하고 바운스시키고 싶은 것은 뭐든 미래에는 만들 수 있다는 것입니다.”


Lighting Fur and Hair

웨타의 인하우스 퍼 시스템 바버샵은 모델 수퍼바이저 Marco Revelant의 지도하에 주인공과 배경 캐릭터들 및 쥐나 낙타에서 개에 이르기까지 모든 동물들의 털과 머리칼을 위해 사용되었습니다.
우린 털을 심지어 얼굴의 솜털이나 옷의 잔털에도 사용했습니다. 털들은 영화 전체를 통해 매우 광범위하게 사용되었습니다.”
  
만화책 버전의 스노위는 기본적으로 개의 외형입니다.
이건 개처럼 생긴 일종의 구름입니다. 윤곽 내부에는 섀이딩이 없고 매우 정형화 되어있습니다.” 털이 어디서 시작하고 어디서 개가 끝이 나며 피부는 어디까지인지 알기 매우 힘듭니다. 흰색 털은 항상 애매한데 수많은 산란이 생기기 때문입니다. 너무 강하거나 어둡게 될 수 있기 때문에 섀이더에 문제가 많습니다.
흰색에 근사한 광택을 내게 하기는 매우 힘듭니다. 수염과 그림자는 짙은 머리털이나 털에서 보다는 더 잘 어울립니다.

운좋게도, ‘바버샵은 토폴로지와 독립적으로 작동할 수 있습니다.
전체적인 비례가 맞는지 보면서 캐릭터에 털을 입힐 수 있었습니다. 만약 잘못되었다면 털을 짧게 하거나 피부를 움직이죠.”
두 가지로 작업하고 어느 쪽이 나은지 볼 수 있죠.” 웨타는 GPU의 성능 덕택에 마야 내에서 인터렉티브한 섀이딩을 만들 수 있었습니다.
랜더시에 듀얼 스케터링 섀이더에 사용했던 것과 동일한 알고리즘을 사용해서, 실시간으로 섀이딩을 가진 라이팅을 하거나 머리카락 너비의 표현을 제어할 수 있었습니다. 보통 털의 모든 가닥은 1픽셀 너비로 뷰포트에 표현되지만 우리 시스템에서는 머리털 너비를 정확히 표현할 수 있는 안티알리아싱을 사용할 수 있으며, 모근과 끝부분의 서로 다른 두께를 보여줄 수도 있고, 마야의 뷰포트에서 보이는 것과 랜더링되는 것과 매우 유사합니다.”
수염이 흰 털과 얼마나 잘 작동하는지 마야 뷰포트에서 볼 수 있다는 점은 매번 랜더링을 하지 않고도 스노위가 어떻게 보이는지 판단하기에 매우 좋습니다.



No comments:

Post a Comment

로그인하지 않아도 댓글을 달 수 있습니다.