반응형

콜라다 홈피
https://collada.org/

콜라다 다운받을 수 있는 주소
https://code.google.com/p/opencollada/




http://wrice.egloos.com/5027746

Collada 소개와 책 추천
제가 Collada 를 공부해야겠다고 생각하게 된 계기는 첫번째로, Gamasutra 에서 구인 광고 할때  Collada 경험자를 선호한다는 것을 몇번 보아왔기 때문이고, 둘째는 PhysX 문서를 읽던중에 Collada 가 몇번 언급 되었기 때문입니다,

생소할수 있는 기술인 Collada 를 한마디로 요약하면, Max/Maya exporter 라고 할수 있겠습니다. 흔히 게임 개발자들이 Max 에서 생성된 데이터를 게임에서 불러와서 화면에 보여주려면 Max 용 plug-in 을 직접 작성해야한다고 알려져 있습니다. 그리고 이 plug-in SDK 를 사용해서 exporter 를 만드는게 쉽지 않습니다. 한국에서 특히 많이 팔린 GameBryo 라는 게임 엔진이 선호되는 많은 이유들 중의 하나가, 안정적인 Max exporter 를 제공하기 때문입니다.

Max/Maya 를 사용해서 파일을 저장할때 binary 파일로 저장을 하게 되면 그걸 읽어서 게임에서 불러 들여서 사용하면 참 행복하겠지만, Max/Maya 내부에서 사용하는 데이터 포멧을 일반 프로그래머들이 이해하기란 시간이 너무 많이 걸리고, 버전이 올라갈때마다 갱신해야한다는 문제점이 있습니다. 그래서 Max/Maya 의 개발자용 SDK 를 사용해서 export 할수 있도록 exporter 를 개발해서 사용하게 되는 것입니다. 그러면 자신의 게임에 필요한 정보만 뽑아내서 외부 파일로 저장하는것이 가능해집니다.

exporter 를 만드는것이 부담되는 경우에 흔히 택하게 되는 차선책은 ASE 파일 포멧입니다. 이것은 사람이 읽을수 있는 형태의 ascii 파일 형태이기 때문에 적절한 파서를 만들어서 사용하기 용이 합니다.

exporter 를 만들지 않을 경우 또 한가지 고려할수 있는 선택지는 .X 파일입니다. Microsoft 에서 개발한 자체 포멧인 X 파일을 사용하면 따로 파서를 만들 필요도 없이 바로 게임에서 사용이 가능하고 LOD 같은 훌륭한 기능도 덤으로 사용할수 있게 됩니다.

그런데 ASE 와 X 파일에는 한계가 있어서, 상용 게임을 개발하고자 할때에는 이 둘중의 어느것도 사용할수가 없습니다. 특히 문제가 되는 것은 "에니메이션"입니다. 게임에서 사용하는 에니메이션은 Skeleton 이라는 데이터 구조를 사용하는 방식인데, 이것을 지원하지 못하기 때문입니다.

에니메이션 이외에도, Occlusion culling 에 사용할수 있는 Scene Graph 지원이 안되고, Physics 연동이 안되어서 게임 프로그래머가 직접 구현을 해주어야 한다는 한계도 있습니다.

Collada 는 이런 문제점들을 모두 개선할 목적으로 개발된 XML 표준안입니다. Max/Maya 에서 Collada 포멧으로 파일을 저장하면 text 형태로 사람이 읽어볼수 있도록 XML 로 저장이 됩니다. 그리고 이렇게 저장된 데이터에는 Geometry 정보, Scene, Animation, Physics 정보등이 모두 포함되어있습니다. 거기에 더해서 Max 에서 저장한 Collada 파일이 Maya 에서도 불러와서 수정할수 있도록 상호호환이 가능합니다.

Collada 는 XML 표준안일 뿐이기 때문에 실체를 갖은 소프트웨어는 없다고 볼수 있겠습니다. 하지만 Collada 를 밀어주고 있는 Sony 에서 Collada DOM 이라는 소프트웨어를 개발해서 제공하고 있고, XML schema 의 문법이 아주 잘 완성되어있기 때문에 이것만으로도 충분히 실용성을 가지고 있다고 할수 있겠습니다.

저는 Collada 검색어로 Amazon 에서 이 책(Collada: Sailing the Gulf of 3d Digital Content Creation)이 검색 되길레 일단 별다른 기대없이 도서관에서 빌렸습니다. 그런데 책이 상당히 좋았고, Collada 에 대한 아무런 배경 지식이 없었는데 많은 것을 얻을수 있었습니다. 사실 Collada 관련 정보는 입수하기가 매우 어려웠고, 입문자를 위한 자료로는 이 책이 거의 유일한것 같습니다. (그래서 그런지 얇은 책임에도 불구하고 비싸게 팔더군요...)

간단히 요약하면 다음과 같습니다.
1장: 소개
Collada 의 개발 배경과 간단한 역사(?)가 설명됩니다.

2장 : Collada Document
Collada 와 XML 표준과의 연관 관계를 설명합니다.

3장 : Collada Geometry
Collada 내부에서 기하 도형을 어떻게 표현하는지 설명합니다.

4장 : Collada Scene
Collada 내부에서 Model 의 Local/World 좌표계 표현을 어떻게 하는지 설명합니다. 그리고 각 node 간의 종속 계층 관계를 어떻게 표현하는지도 설명합니다.

5장 : Collada Effect
Collada 파일 안에 Shader 코드를 어떻게 집어 넣는지 설명합니다. Collada Effect 는 Collada FX 라고 부르기도 합니다. 책의 설명에 따르면 NVidia 에서 개발한 FX Composer 의 표멧과 거의 같다고 하는데, 제가 FX Composer 를 안써봐서 잘 모르겠습니다. DX 에서 사용하는 Effect Framework 의 약간 변형된 형태와 같다고 볼수 있겠습니다.

6장 : Collada Animation
Collada 에서 Skinning 와 Morphing 을 어떻게 표현하는지 설명합니다.

7장 : Collada Physics
Collada 에서 물리를 어떻게 표현하는지 설명합니다. Rigid Body 밖에 아직 지원하지 않는듯 합니다. 대부분의 내용은 PhysX 개발자들의 영향을 받았다고 합니다.

8장 : Collada Contents Pipeline
Collada 의 Conditioner 와 Refinery 의 개념을 설명하고 앞으로 개선 방향을 제시합니다.
책 자체는 매우 작은 헨드북 수준의 책입니다. 뒤의 별 내용없는 부록 부분을 제외하면 160페이지 정도 밖에 되지 않습니다. 저는 읽는데 2일 걸렸습니다.

읽고나서 소감은, 앞으로 조만간 Collada 가 대세가 되겠다는 생각이 들었습니다.

책은 1.4 버전을 기준으로 입문자를 위해서 만들어진 책입니다. Collada 웹 사이트에 가보면 지금 1.5 버전의 표준안이 공개되어있어서 다운 받을수 있습니다. 200 페이지가 넘는 표준안 문서가 공짜로 공개되어있는 상황인데, 그래도 그 표준안은 입문자를 위한 수준이 아니어서 이 책을 먼저 한번 읽어주고 표준안을 보면서 코딩하는게 좋겠다는 생각입니다.

그리고 한편으로는 GameBryo 는 이제 뭘로 먹고 사나 하는 생각이 들었습니다. 물리는 PhysX 구현에 의존하고, 소리는 마일드에 의존하고, 유일하게 강점이었던 SceneGraph 랑 Max Exporter 도 이제 Collada 가 대세가 되면 Collada 에 의존하게 될텐데....;;;

트랙백 주소 : http://wrice.egloos.com/tb/5027746
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
 Tracked from bt22d's me2DAY at 2009/10/07 11:22

제목 : 헌신랑의 생각
쌀밥게임 대왕 : Collada 소개와 책 추천...more

 Commented by 쌀밥 at 2009/08/01 04:14 
AutoDesk 에서 개발한 FBX 라는 파일 포멧도 있군요:
http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=6837478
 Commented by 쌀밥 at 2009/08/01 06:01 
Collada Official Viewer 라는것이 있군요.
http://www.feelingsoftware.com/content/view/40/66
이름이 Feeling Engine 이라고 합니다.. (근데 상용이군요...)

무료도 있는데 제대로 돌아가는지는 모르겠군요.
http://wiki.worldforge.org/wiki/Collada
 Commented by MuMbi준환 at 2009/08/03 16:37  
저도 쌀밥님과 같은 생각입니다. 

현재 취직하기 위해 포트폴리오를 제작하기 위해 exporter 를 제작하려고 자료를 찾아보다가 collada 를 알게 되어 막 개발에 들어갔습니다. 

collada 가 3d model 표준 이라는 말이 가장 많은 매리트였고 
웹 3D 를 구현한 google 이나 flash 3D library 에서도 collada 를 사용한다고 알게 되어 collada 를 사용하여 구현하려고 합니다.

그런데 우리나라에는 collada 에 관련된 자료가 많지 않아 이렇게 검색하다가 블로그에 들리게 되었네요. ^^;

저는 현재 feelingsoftware 에서 제공하는 FCollada library 를 사용하여 개발 중입니다. 

시작부터 삽질이 많네요.

좋은 정보 많이 알아갑니다.

추천 하신 책은 꼭 읽어봐야겠네요. 

즐거운 하루 되세요 ^^
 Commented by MuMbi준환 at 2009/08/03 16:44  
아, 저 책 어디서 빌릴 수 있을까요?
 Commented by 쌀밥 at 2009/08/08 14:32 
책은 생각보다 얆고 괜찮은 편입니다. 좀 비싸기는 하지만 하나 장만하시는게 좋겠다는 생각입니다. 워낙에 보는 사람이 없어서 빌리기가 어렵습니다.

그리고 FCollada 는 안써봐서 잘 모르겠지만 ColladaDOM (공식 라이브러리) 만으로도 충분히 좋다고 생각합니다. SVN 으로 최신버전 (2.2)을 받으시면 제대로 컴파일되고 돌아가는 viewer 로 얻으실수 있습니다. Open source 로 개발되고 계속 업데이트도 되고 있는 중이라서 좋습니다. FCollada 는 업데이트가 중지된지 꽤 된걸로 알고 있습니다.
 Commented by MuMbi준환 at 2009/08/20 09:09  
아 좋은 정보 감사합니다. 

어쩐지 FCollada 는 1.4 버전이 끝이더라구요.. 

ColladaDOM 으로 다시 해야겠네여 ㅎ
 Commented by STL at 2010/01/28 22:33  
좋은 정보 담아가겠습니다~
 Commented by 쌀밥 at 2010/01/29 12:54 
Sony PS3 SDK 설치하니까 Collada XML Loader 도 같이 설치 되더군요...
 Commented by 초보 at 2010/08/24 07:23  
정보감사합니다.
x파일로 포폴만드는중인데 collada 로 만들고싶은 생각이
확듭니다. 그나저나 초보들은 너무힘이듭니다.
이거찔끔저거찔금 하다 시간다가네요.ㅠㅠ
 Commented by 쌀밥 at 2010/08/27 17:43 
회사에서 일하기 시작하면 찔끔 거릴 시간 조차 없는것 같아요...

x 파일도 좋은데 collada 가 x 파일보다 강점인것은 애니메이션을 지원할수 있다는 점입니다. 근데 저도 아직 애니메이션을 지원하는것 까지 구현하질 못했습니다.

물리 엔진을 사용하시면 애니메이션 구현이랑 연동 시키는 부분에서 어떻게 구현할지 정해야할 텐데, 구부분을 잘 고려해보시고 물리엔진만으로 애니메이션이 커버 될것 같으면 그냥 X 파일로 가시는 것도 한가지 방법이겠습니다.

시작하는 초기 단계라면 계획을 너무 무리하게 잡고 시작하는 것은 좋지 않을것 같아요. 게임 프로그래밍은 만만한게 아니니까요 ㅎㅎ
 Commented by 기쿤 at 2011/01/28 14:41  
.x 파일도 skeleton animation을 지원하는거 아닌가요?
그.. tiny.x 도 그럴텐데;;
 Commented by 쌀밥 at 2011/01/31 18:49 
기쿤// 다시 검색해보니 X 파일도 키를 사용한 애니메이션이 되는군요.
http://msdn.microsoft.com/en-us/library/bb172239%28v=vs.85%29.aspx
 Commented at 2012/02/19 08:33  
비공개 덧글입니다.

반응형

+ Recent posts