프로그래밍 언어 입문서가 아닌 프로그래밍 기초 개념 입문서
문과생, 비전공자를 위한 프로그래밍 입문책입니다.
jobGuid 꽃미남 프로그래머 "Pope Kim"님의 이론이나 수학에 치우치지 않고 실무에 곧바로 쓸 수 있는 실용적인 셰이더 프로그래밍 입문서 #겁나친절 jobGuid "1판의내용"에 "새로바뀐북미게임업계분위기"와 "비자관련정보", "1판을 기반으로 북미취업에 성공하신 분들의 생생한 경험담"을 담았습니다.
Posted by 밥을먹는선비
2강이라고 하기엔...준비가 좀 부족했습니다.
요즘에 갑자기 학교 특강을 맡아버리는 바람에 아무정신없이 어느덧 2주가 훌쩍 지나 버렸네요.  ㅜ.ㅜ;

매월 6일과 21일에 글을 올리기로 되었는데 처음부터 쉽지않네요. 다소 준비가 부족한 면이 있어도 양해 부탁드립니다. 다음부터는 꼭 스캐쥴을 배분을 잘해 두도록하겠습니다.

전체 구조요약

일리히트엔진구조를 전체적으로 요약하자면 일단 네임스페이스별로 irr 을 루트로 하여 그밑으로 천하는 중원의 조조가 다스리는 core, 서촉의 유비가 다스리는 video, 강동의 손책이 다스리는 scene, 북방의 원소가 있는 gui, 남만맹획 의 io  5개의 나라로 나누어져있습니다.(그냥 농담으로 비유한것이니 넘 심려치 마시길...)

암튼 중요한것은 크게 5개로 나누어진다는것입니다.  

irr 
|
+--core
+--video
+--scene
+--gui
+--io


irr 루트에는 가장 중요한 디바이스(

irr::IrrlichtDevice

) 객체가 있습니다.

일리히트엔진의 디바이스란 랜더링디바이스를 추상화 한것이 아니라 시스템 전체(os 포함)를 추상화 한것입니다. 랜더링 디바이스(비디오카드 같은...)는 video 네임스페이스로 따로 나뉘어져있습니다.
device는 전체 시스템을 추상화 한것입니다, 달리 말하면 가상의 기계라고 보셔도 됩니다. 이것을 보고 예전에 어떤분이 프레임웍이 내장된 엔진이라고 평을 하던데 전 개인적으로는 플랫폼이 내장된엔진이라는 표현이 더 맞을거같다는 생각이 들더군요.

디바이스에 종속적인 부분은 바로 이부분에서 모두 다뤄지게됩니다. 예를 들어 안드로이드 상에서 일리히트엔진을 돌리고싶다면 안드로이드용 디바이스를 irr::IrrlichtDevice 에서 상속받아 만들어주면됩니다. 나머지 네임스페이스로 나누어진 부분들은 모두 코드 수정할 필요가 전혀없습니다.


이름 그대로 중심의 core에 나머지 네개가 모두 종속 되어져있습니다. 반데로 말하면 core는 나머지 4개가 어떻게 바뀌던 상관없지만 core가 수정이 되면 나머지 네게 모두 영향을 받게 됩니다.(사실 그런 부분만 따로 떼어 놓은것이 core 입니다.)
core의 내용물은 벡터,행렬등의 수학관련 클래스와 array,map,string등의 컨네이너클래스들 입니다. 예전에 이 부분만 따로 떼어서 겜브리오 엔진에 붙여서 사용한적도 있을 정도로 정리가 아주 잘되어있습니다. 
만약 일리히트엔진을 다른언어등으로 포팅하려할때도 이 부분을 먼저 포팅하는것이 순서일것입니다.

io 는 코어의 컨테이너 부분을 사용합니다. 주로하는 역활은 파일처리와 더불어 항상성 유지 관리 기능을합니다. 엔진의 현재 모든 상태(씬트리, 메트리얼)를 그대로 xml로 직렬화해서 내보낼수있으며 반대로 읽어 들일수도있습니다.

video 는 core 의 수학클래스와 컨테이너를 사용하며 또 io의 파일처리 부분을 사용합니다. video국의 주력 군대는 dx, opengl 같은 랜더러를 추상화 합니다. 

scene,gui는 둘다 video에 종속되어있습니다. 자세한 내용은 두나라를 정벌할때 다시 이야기 하도록 하겠습니다.


이번에는 여기서 마칠까합니다.


ps.
다음회 부터는 본격적으로 5나라를 하나씩 정복하겠습니다.

새해 복 많이 받으시고 모두다 천하통일의 대업을 이루시길기원합니다.

모두들 천하통일하는 동안 그럼 소는 제가 키우겠습니다.




 

댓글을 달아 주세요

  1. Favicon of https://gamedevforever.com zinzza 2012.01.06 01:11 신고  댓글주소  수정/삭제  댓글쓰기

    아~ 좋은 글 감사합니다~
    좋은 글 안좋은 그림...ㅡ.ㅡ;
    뭐 어때요~ 내용파악은 다 됐는데.
    ㅎㅎ 아직 코드가 없어서 이해되지만 곧 이해가 안되겠죠? ㅜㅜ

  2. Favicon of https://gamedevforever.com 끼로 2012.01.06 01:37 신고  댓글주소  수정/삭제  댓글쓰기

    저도 따라서 일리힛 엔진을 차근차근 분석해보고 싶지만 요즘 여러가지로 바빠서 힘드네요 ㅠㅠ 아쉽지만 도플광어님이 올려주시는 내용을 읽으면서 아쉬운 마음을 달래야겠어요.. 나중에 시간이 되면 한번 실제 소스도 살펴봐야겠습니다! 감사합니다~

  3. Favicon of https://gamedevforever.com zinzza 2012.01.06 09:07 신고  댓글주소  수정/삭제  댓글쓰기

    엇 그림 안좋다는 말은 농담이었는데 혹시 상처 받으셨다면 죄송해요.ㅜㅜ

    • 도플광어 2012.01.06 23:49  댓글주소  수정/삭제

      아닙니다. ^^;
      급하게 준비하다보니 저도 맘에 들지않아서요. 원래는 삼국지 지도처럼 하려고했는데..
      나중에 보강해서 다시 공개 하겠습니다.

  4. 디치리 2012.01.06 09:56  댓글주소  수정/삭제  댓글쓰기

    그림이 궁금하네요..

    • 도플광어 2012.01.07 17:38  댓글주소  수정/삭제

      삼국지지도를 흉내 내보려고 했는데 맘같이 잘안되더라고요^^;

  5. coolcoolii 2012.01.06 11:41  댓글주소  수정/삭제  댓글쓰기

    좋은글 감사합니다.
    삼국지 나라에 비유하여 설명하니까 이해가 잘되네요.
    일리히트 오국지 기대할께요.

  6. Favicon of http://bluekms21.blog.me 크로스 2012.01.06 12:57  댓글주소  수정/삭제  댓글쓰기

    좋은 내용이었습니다. 하고 덧글을 달려고 했는데
    그림만 궁금해지는 뒤끝이;;;

    • 도플광어 2012.01.07 17:36  댓글주소  수정/삭제

      별건 아님니다 나중에좀 보강을 하는편이 나을듯해서요. 암튼 감사합니다^^;

  7. Favicon of https://gamedevforever.com 스톰(서광록) 2012.01.07 00:47 신고  댓글주소  수정/삭제  댓글쓰기

    IRR에서 내부수익율(Internal Rate of Return)이 먼저 연상된 저는 사업팀 물을 너무 많이 먹은 걸까요 ㅎㅎ 빨리 좋은 신작 아이디어 완성해서 신규 플젝 들어가야 할텐데 말이죠...

    • 도플광어 2012.01.07 17:36  댓글주소  수정/삭제

      관심사가 아무래도 보이는 사물을 그렇게 만드는듯합니다.^^; 새해엔 신규플젝 대박나시길~

  8. sgpro 2012.01.10 11:23  댓글주소  수정/삭제  댓글쓰기

    고맙습니다. ^^

  9. Favicon of http://Junios.net Junios 2012.01.10 12:16  댓글주소  수정/삭제  댓글쓰기

    잘 보겠습니다.

  10. zeys 2012.01.27 21:32  댓글주소  수정/삭제  댓글쓰기

    올해 계획에 일리힛 분석을 추가 해야겠습니다.
    감사합니다