※ 다음 내용은 CGsociety의 feature인 "Sade of Davie Jones"를 저작권 동의하에 번역한 내용임을 밝힙니다.
ILM은 『캐리비안의 해적 : 망자의 함(Pirates of the Caribbean : Dead Man's Chest)』 에서 갑각류로 덮혀진 해적선원들을 만들어냈다. CG로 제작되었다고 믿겨지지 않을 만큼 놀라운 퀄리티로 제작한 ILM의 선임연구&개발엔지니어인 Christophe Hery에게 이 디지털로 제작된 반인반수(半人半獸)의 선원들에 대한 이야기를 들어보았다.
Hery는 1993년부터 ILM의 선임 테크니컬 디렉터로 근무해왔다. ILM에 들어오기전 4년간은 파리의 BUF와 Thompson Digital Images와 파리의 카툰 스튜디오인 Label 35에서 R&D 감독을 맡았었다. 『스폰(Spawn)』, 『슬리피할로우(Sleepy Hollow)』, 『스타워즈 에피소드2 (Star Wars: Episode II Attack of the Clones)』, 『쥬라기공원3(Jurassic Park III)』외 다수 영화들의 CG 수퍼바이저와 테크니컬 디렉터들을 담당했으며, 최근에는 R&D분야에도 뛰어들어, 피부의 라이팅과 렌더링기술을 개발하고있다.
2003년, Hery는 subsurface scattering 기술을 이용한 반투명 스킨렌더링의 실용적 방법의 개발로 Technical Achievement상을 받기도 했다. Pirates of the Caribbean: Dead Man’s Chest가 2006 오스카상 비주얼 이펙트 부문 후보에 오르기도했다. www.ilm.com/theshow/를 통해 ILM에서 만든 해적들에 대한 모든 정보를 볼수있다.
이번영화의 해적들을 위해 새로운 렌더링 기술들을 개발했다고 들었는데, 왜 그러한 방법이 필요했나요?
저희는 지브러시를 이용해 결과물을 냈습니다. 디테일을 위해 지오메트리나, 텍스처맵, 디스플레이스먼트맵등 모든 기술들이 가능하지만, 데이터가 무거워지게 됩니다. 하지만 해적들은 영화에서 중요한 캐릭터였기때문에, 비록 화면상에서는 세개정도의 적은수의 픽셀정도만 나오더라도, 디테일을 낮추고싶지 않았습니다. 오히려 화면상에 보여지는 픽셀보다 더많은 점과, 지오메트리를 가지고 결과물을 렌더링 했습니다.
속도가 굉장히 저하될듯한데, 실제로는 어땠나요?
occlusion의 경우에 ray trace나 subsurface scattering이 사용될 경우, 그런 문제점들이 있었습니다. 이러한 방식은 point-based 샘플링에 의존하기 때문인데요. 모든 지오메트리의 합을 계산하여 하나의 픽셀에 표현하기때문에, 시간은 오래 걸릴지언정, 많은 결과가 나오지는 않습니다. 이런방식은 낭비가 큽니다. 렌더맨 엔진에 포함된 ray tracing에는 몇가지 자동적인 디테일 단계(LOD)들이 있지만 그것만으로는 충분치 않을뿐더러, 눈에 보이지 않는 지오메트리를 제거하지 못하므로, 그런것들은 모델러의 몫이라고 할수있습니다.
렌더맨을 사용하셨는데, 특별한 이유가 있었나요?
네 렌더맨을 사용했습니다. 하지만 다른 ray tracer들 처럼 느려질수있었죠. 이 문제점을 픽사와 함께 토론한뒤 렌더맨안에 새로운 기술을 갖추었습니다. 이것은 NVIDIA의 GPU 컴퓨터 Gems 2를 통해 가능으며, 우리에게 DSO를 주어 새로운 버전이 나오기 전에 시험해볼수 있도록 하였습니다. 통합후에는 12~13시간 걸렸던 렌더링이, 3~4시간만에 더 나은퀄리티의 결과물을 얻을수 있게 되었죠.
그게 어떻게 가능한가요?
보통 occlusion 패스를 할때, 전체적인 빛의 분포를 계산하게됩니다. 모든 지오메트리를 가로지르는 빛들을 더해 ray tracing의 평균값이 occlusion 값이 되는데, 많은 수의 빛들을 보내, 지오메트리의 디테일들을 얻을수는 있겠지만 우리는 절대 그러한 ray tracing을 하지는 않습니다. B-splines과 wireframe 대신에, 노멀방향의 표면접점으로 부터 비롯된각 교차점마다 몇가지의 방향을 나타내는 disk들을 얻게되고, 그것들이 다른 disk들과 교차하는지를 보고 이것을 통한 분석적인 ray tracing이 가능하므로, 임의의 지오메트리를 대상으로하는것보다는 빠른 결과를 얻을수 있습니다.
메모리속에있는 disk들을 조직하고, 실제 ray tracing이아닌, 대략적으로 분석된 ray tracing이므로, 실제의 해결책과는 느낌이 약간다를수있으나, 노이즈가 없다는 장점이 있습니다. 실제의 ray tracing을 이용해 occlusion 하는대신, 몇개의 랜덤한 빛들을 노멀주위로 보냄으로서, 선택된 가짜 빛들을 점 주위에 보내 노이즈없이 빠른 결과를 내는것이죠. 쉐이딩은 기본적으로 subsurface scattering을 이용했으며, 렌더맨 13 문서에 보면, scattering을 위한 범위에 대해 찾아볼 수 있습니다. 이것 역시 마찬가지로 point-based기술입니다.
Global Illumination은 어떠한가요?
ambient occlusion을 이러한 point-based로 접근하는것의 또다른 장점은, 한번의 바운스로 global illumination을 자유롭게 이용할수 있다는 것인데, 한번 이러한 모든 disk들과 point cloud들을 쏘게되면, illumination이 저장되고, 빛을 디스크위에 받아들이게됩니다. 그래서 한번 ray tracing을 하게 되면 다시 바운스를 할필요가 없죠.
불편한점은 없나요?
disk들이 드문드문하게 표현되기 때문에, 빈도가 낮은 얼룩들이 나올겁니다. 하지만 저희는 대개 ray tracing을 통해 좋은 얼룩을 얻지는 않으며, 심지어는 Zeno(ILM inhouse tool)안에서도 지오메트리들이 너무 무겁기때문에, Pirates들을 위한 기적에 가까운 기술입니다.
마지막으로, 해적들을 위해 다양한 렌더맨 쉐이더들을 사용했는지요?
과거에는 눈,입,귀들이 떨어져있어서 특정한 쉐이딩을 지정하는데 어려움이 없었지만 지금은 subdivision된 모델을 사용하기때문에, 부분적으로 적절한 쉐이딩을 적용하는것이 예전보다 복잡합니다. 옷이나, 조개들, 어패류, 피부촉수들을 제외한 모든 디테일을 가진 하나의 복잡한 덩어리모델을 사용했습니다. Pat Myers가 만든 ubershader는 제 쉐이더의 세배로, 여러가지 많은 속성들을 포함하고있습니다. 디스플레이스먼트 맵을 포함한 몇가지 지오메트리들은 예전의 기술로는 렌더링이 되지 않기때문에 저희는 이렇게 맵을통해 재현할수 밖에 없었습니다.
- [MAYA/마야] 『캐리비안의 해적』의 새로운 렌더링 기술 -
첫댓글 이해는 잘 안가지만 렌더링에도 여러 방법이 있는 듯 하네요 ~