Tuesday, March 6, 2012

데이터 교환포맷으로서 OBJ, Collada 와 Alembic 의 비교


http://unrealillusions.com/2012/02/comparing-obj-collada-and-alembic/

원저자의 허락하에 번역된 글을 게재합니다.


Siggraph 2011 에서 ILM과 Sony Pictures Imageworks는 지오메트리 정보를 저장하기 위한 혁신적인 파일 포맷인 Alembic 의 1.0 버전을 공개했습니다. 오래된 쓸만한 obj와 collada와는 무엇이 다르며, 주요 3D패키지들에 대한 지원은 어느정도나 되며, 파일 크기는 얼마나 될까요? 여기 이 모든 질문에 대한 답이 있습니다

OBJ, Collada와 Alembic은 게임과 시각효과 산업에 사용된 3D지오메트리를 위한 세 가지 서로 다른 교환가능 포맷들입니다. 여기 간략한 소개를 해 봅니다!

Wavefront OBJ

아마도 모든 CG아티스트들은 obj 파일 포맷을 적어도 한번은 사용했을 겁니다. 이 포맷은 거의 모든 3D 패키지에서 매우 잘 통합이 되었고, 이로 인해 매우 인기있는 포맷이 되엇습니다. 하지만 이 obj파일의 큰 단점 중 하나는 파일 구조가 오래되다보니 크기가 너무 커진다는 점입니다. 이게 이 포맷이 구식이라는 한가지 이유입니다.
OBJ는 Wavefront Technologies에 의해 개발되었습니다. 각 포인트나 버텍스/페이스의 좌표를 저장합니다. UV나 Textures와 같은 것들도 포함될 수 있습니다만 애니메이션 데이터는 포함되지 않습니다. 따라서 매 프레임에 하나의 파일을 필요로 하게 되고, 매우 큰 디스크 공간을 필요로 합니다. 더구나, OBJ파일로 내보내는데 시간이 오래 걸리고 이를 다시 불러오는데는 더 오래 걸립니다 (이는 여러분이 사용하는 프로그램에 따라 다른데 제 경우 Octane Render를 사용할 때 매우 안좋은 기억이 있습니다). 이는 여러분을 어렵게 만들며 때로는 매우 실망스럽습니다 (매우 큰 씬에 대한 얘기입니다).

COLLADA

COLLADA는 XML기반의 파일로 모든 종류의 3D어플리케이션을 위한 교환용 포맷으로 여겨지고 있습니다. VFX (3ds Max, Maya, Blender 등) 나 게임 제작 (Cry Engine2, Unreal Engine 등) 에 널리 사용되고 있습니다.
원래 이 포맷은 Sony Pictures Imageworks에서 개발되었는데 현재 버전(1.5)는 Khronos Group에 의해 배포되고 있습니다.
Collada파일에는 포인트 정보뿐 아니라 UV와 같은 것들도 저장이 됩니다. 추가적으로 애니메이션 데이터와 물리연산(Bullet과 같은) 도 저장이 가능하기 때문에, obj 포맷에 비해 훨씬 효율적입니다(긴 애니메이션을 내보내려고 할 경우 수천개의 파일이 없어도 되므로).

Alembic

Alembic이 Wavefront OBJ나 COLLADA와 다른 큰 차이점은 Alembic 이 단순히 파일포맷이 아니라 프레임웍이란 점입니다. 이 말은 기본적으로 Alembic이 파일포맷을 포함하고 있지만 어떤 플러그인이나 심지어 C++라이브러리와 같은 것도 포함하기 때문입니다.
Alembic은 지오메트리의 베이크된(baked) 버전을 저장하므로 파일 사이즈를 최소화 시킵니다(이게 원래의 개발 목표중 하나였습니다). obj포맷과 비교를 하면 99.8퍼센트의 디스크 공간을 절약할 수 있습니다(물론 단지 하나의 예시일 뿐이며, 사용할 때마다 항상 그 정도는 아니겠지만 그래도 큰 차이를 보여줍니다)!!!
Alembic은 분명 지오메트리정보를 저장합니다. 하지만 이는 확장이 가능하기 때문에, 내부에 대체로 3D지오메트리와 관련된 것들도 저장할 수 있습니다.
Alembic에 있어서 단점이라면 그 채택이 현재로서는 좋은 편은 아니라는 점입니다. SideFX에서 작년에 Houdini 11.1에 Alembic 의 지원을 추가했으며, Autodesk 역시 지원을 하지만 다른 소프트웨어 사용자들은 플러그인에 의존해야 하는데 네이티브 채택이 없다는 점입니다. 물론 곧 바뀔거라고 확신합니다!

추가:
오해하지 않기를 바라건데, 누군가가 "안좋은 채택(bad implementation)"이란 말이 채택 자체가 안좋다는 말로 들린다고 지적했는데, 그런 의미로 말한게 아닙니다. 제가 Alembic이 채용된 모든 3D패키지를 사용해 보진 않았기 때문에, 일반적 채택(general implementation)에 대해 판단할 수 있는 위치에 있지 않습니다. 하지만 말하고자 하는 바는 현재시점에서는 많은 곳에서 지원되고 있지는 않다는 점입니다. 물론 좀 다를 수도 있습니다. 불명확하게 한 점은 사과합니다.

결론

만약 여러분이 한 어플리케이션에서 다른 어플리케이션으로 캐릭터를 내보내고 싶을 경우, OBJ를 사용하든 Collada를 사용하든 아무 상관은 없습니다. 그저 개인적인 선택의 문제일 뿐입니다. 하지만 애니메이션이나 복잡한 씬을 다루고 있다면, OBJ는 피하세요. Collada가 훨씬 좋습니다. Alembic이 더 많이 채택된다면, 그 땐 변할겁니다. 일부 VFX스튜디오는 이미 Alembic을 사용하고 있으며 이 비디오 에 따르면 매우 만족해 보입니다. Alembic의 성공은 얼마나 빨리 메이저 3D 및 랜더링 어플리케이션에서 적용이 되는가에 달려있습니다. 하지만 분명 가까운 장래에는 눈여겨 봐야할 것입니다.

No comments:

Post a Comment

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