yuchi's Development Home


4DyuchiGX #2 화면에 뭐가 보여야 뭘 하지...

조회 수 4570 추천 수 92 2002.07.06 22:02:24
진영씨가 입사하고 7월2일부로 엔진 개발이 시작됐다.
초기에는 엔진이라고 부르는 소프트웨어 모듈에 대한 개념이 제대로 잡혀있지 않았다.정확히는 게임 엔진에서 어디까지 해줘야하고 외부의 입력에 대해 어떻게 동작해야할지 감이 오지 않았다.막연히 그래픽자가 작업한대로 화면에 나오면 된다는 생각이었다.(물론 그건 꽤나 지키기 어려운 기본기능이다)

나름대로 초기 설계는...그러니까 엔진을 구성하는 소프트웨어 모듈에 대한 기본구조는....DLL기반의 in-process COM 3개로 잡았다.어차피 불가능한 일이라고 생각했으나 어쨌든 openGL이나 기타 디바이스 포팅을 위해서 최하위 DLL컴포넌트만 D3D API를 사용토록했다.이 계층을 4DyuchiGXRenderer.DLL파일로 컴파일했고 렌더러라 불렀다.
그 위의 계층은 디바이스에 종속적이지 않은,그야말로 3D만 생각하는 계층이다.거의 모든 버텍스 데이타와 매트릭스들이 이 안에서 다루어지도록했다.4DyuchiGXGeometry.DLL 파일로 컴파일했고 지오메트리라 불렀다.
3계층중 최상위 계층은 기본적인 게임로직을 구현하는 계층으로 이 계층부터는 머리아픈 수학루틴들이 상당히 줄었고 게임 프로그래머한테 바로 노출되어 게임 오브젝트의 관리등을 맡게했다.4DyuchiGXExecutive.DLL 로 컴파일했고 익스큐티브라 불렀다.
그럴싸하게 다이어그램도 그려놓고 개발시작.
계층구조가 어떻고 설계가 어떻고 해도 이런류의 소프트(특히 게임)은 화면에 보이는게 제일 중요하다.화면빨갖고 모든 평가가 결정된다.다시말해....설계가 아무리 그럴싸해도 화면에 뭐가 보여야한다는 것이다.

당초 각오는 하고 있었지만 초반 작업이 매우 짜증났다.맥스나 마야등 3D 그래픽툴에서 뱉어내는 데이타의 종류는 꽤 많고 제대로 화면에 표현하기 위해선 잔손이 많이간다.(많이...라고 표현했지만 지금 다시 하라고 하면 치가 떨릴만큼 손이 많이간다.완전 인내심 싸움이다.)

테스트 단계에서만 .ASE(맥스의 텍스트 파일포맷)를 쓸까 생각도 했으나 ASE를 다루는 일이 얼마나꿀꿀한지 잘 알기 때문에,또 나중에 전혀 쓸모가 없다는것을 잘 알기에 일찌감치 ASE를 쓸 생각은 접었다.
자체 플러그인을 만들어서 데이타를 뽑기로 했다.모델링 데이타는 애니메이션 데이타(주로 키프레임 데이타)와 모델 데이타(매쉬데이타)를 분리해서 뽑기로했다.바이패드나 본을 사용할 경우, 아니면 오브젝트 이름을 통일시키는 경우에는 애니메이션을 공유할수 있기 때문이다.
모델 익스포터와 애니메이션 익스포터를 max sdk를 이용해서 제작하기 시작했다.이전에도 한번 글을 썼지만 맥스 플러그인 만드는 일은 짜증이 만땅이다.성질 버리가 딱 좋은 작업이다. 게다가 간만에 접하는 다이렉트X의 새버젼, DX 8.0의 Direct3D는 이전에 다루던 7.0과는 꽤 많이 달라져있었다. 퍼포먼스 향상을 위해서였는진 몰라도 인자를 잘못 넣는것만으로도 블루스크린을 볼 수 있었다.삼각형 갯수를 인자로 넣는것을 인덱스 갯수(면갯수*3)를 넣어서 몇일동안 블루스크린의 늪에서 해맨적도 있었다.(별것도 아닌데 원인 찾느라 힘들었다.) 멀티 매터리얼 지원을 위해 매터리얼 그룹별로 페이스를 소팅해야했고 버텍스 갯수와 uv좌표 갯수를 맞추기 위한 노가다도 장난 아니었다.피지크 사용에 있어서도 본에 n링크 시키고 싶었으므로 상당히 복잡한 코드를 짤수밖에 없었다.계층구조 애니메이션을 한방에 트랜스폼하기 위해 데이타를 익스포트할때부터 트리구조로 만들어서 배열에 저장해놨다.
이래저래 노가다와 테스트로 가득찬 작업들이었으나 그래도 이전 노가다의 경험과자료가 바탕이 되어 약 한달 정도만에 기본적으로 원하던 선까진 구현이 되었다.가장 엿같고 힘들었던것은 라이트맵 생성이었다.미쳤지...라이트맵 계산까지 몽땅 플러그인에서 하게 해놨었다.잘만 되면야 그래픽자 입장에선 편한게 문제는 그 전에 프로그래머가 홧병으로 쓰러질 가능성이 높다는 것이었다.결국 라이트맵 생성을 위한 기본적인 데이타는 익스포트할때 처리하고 실제 계산은 맵툴에서 하도록 바꾸었다.

1차 pt는 9월 예정이었으므로 시간에 쫓기며 스트레스에 시달렸다.매일 야근에 집까지 걸어가는 2시간 정도동안 머릿속으로 계속 프로그램을 짰다.다이렉트 x 핼프 펼쳐놓고 맥스 띄워놓고 비졀씨 띄워놓고..그러다 블루스크린 뜨면 괴성을 질러대고...그런 날들의 연속이었다...


댓글 '5'

성희

2002.07.09 01:50:24
*.49.146.49

굉..굉장히 흥미진진합니다. 두근.

여치

2002.07.09 09:59:26
*.238.38.85

보는 사람 없는거 같아서 관둘까 했는데 계속 써야겠군요.

리우샤오

2002.07.09 20:32:30
*.197.241.83

오오~~~ 이런게 있군요!
T.T; 계속써주세요~~

베지타

2002.07.10 18:52:41
*.192.167.157

여치와 야망을 가진 남자들 ~~~ 가제치곤 죽이져?

나중에 이글들이 내용이 많아져서 책낼만한 수준이 되면 그떄는 책제목을

이것으로 꼭 해주세여...ㅋㅋㅋ 강력하게....

^____^

2008.03.20 02:13:33
*.29.249.44

으...플러그인 써서, 필요한 데이터 뽑아서 쓸 줄만 알았지 ㅠㅠ

sdk 참조해서 플러그인 만들 수 있는 줄 몰랐어요..

볼수록 흥미롭니다. ^^
파일 첨부

여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
161 요새 작업중인 복셀 관련... file 여치 2012-11-17 4627
160 Parallel NSight를 이용한 CUDA코드 디버깅 file 여치 2010-09-26 4578
» 4DyuchiGX #2 화면에 뭐가 보여야 뭘 하지... [5] 여치 2002-07-06 4570
158 SS3D엔진 렌더러에 추가한 외부 이펙트 쉐이더 file [1] 여치 2003-11-06 4570
157 dx11 - 폰트와 스프라이트 처리 file 여치 2011-02-13 4569
156 모델링 가능한 맵툴만들기 #1 - boolean 연산 file 여치 2006-01-11 4543
155 후닥닥 만든 카툰렌더러 file [3] 여치 2005-06-01 4496
154 x64어셈코드에서 크래시한 경우 콜스택 확인 file 여치 2010-08-27 4479
153 나의 첫 프리젠테이션. [1] 여치 2003-01-13 4468
152 하나의 엔진, 멀티 씬그래프 file [1] 여치 2007-03-20 4432
151 dx11 포팅 프로젝트 - uv애니, 빌보드 오브젝트, 알파처리 file 여치 2011-02-08 4422
150 x64 어셈블리 쓰기 file [2] 여치 2007-04-15 4420
149 후닥닥 구현한 쉐도우맵 file 여치 2007-07-29 4414
148 개밥먹기 여치 2008-02-28 4378
147 충돌처리 및 기타 등등 file [6] 여치 2005-03-12 4356
146 라이트맵 블러링 추가 file [1] 여치 2007-01-06 4324
145 왕창 갈아엎은 라이트맵 file [2] 여치 2006-12-30 4320
144 dx11 필드처리-(타일텍스쳐*알파맵*라이트맵) file 여치 2011-02-05 4312
143 프로그래밍의 도를 향해#2 여치 2002-04-22 4310
142 BSP/PORTAL을 이용한 공간분할 file [3] 여치 2006-10-01 4307
天安門大屠殺 六四天安門事件 反右派鬥爭 大躍進政策 文化大革命 六四天安門事件 The Tiananmen Square protests of 1989 天安門大屠殺 The Tiananmen Square Massacre 反右派鬥爭 The Anti-Rightist Struggle 大躍進政策 The Great Leap Forward 文化大革命 The Great Proletarian Cultural Revolution 人權 Human Rights 民運 Democratization 自由 Freedom 獨立 Independence 多黨制 Multi-party system 民主 言論 思想 反共 反革命 抗議 運動 騷亂 暴亂 騷擾 擾亂 抗暴 平反 維權 示威游行 法輪功 Falun Dafa 李洪志 法輪大法 大法弟子 強制斷種 強制堕胎 民族淨化 人體實驗 胡耀邦 趙紫陽 魏京生 王丹 還政於民 和平演變 激流中國 北京之春 大紀元時報 九評論共産黨 獨裁 專制 壓制 統一 監視 鎮壓 迫害 侵略 掠奪 破壞 拷問 屠殺 肅清 活摘器官 障テ社會 誘拐 買賣人口 遊進 走私 毒品 賣淫 春畫 賭博 六合彩 台灣 臺灣 Taiwan Formosa 中華民國 Republic of China 西藏 土伯特 唐古特 Tibet 達償ワ喇嘛 Dalai Lama 新疆維吾爾自治區 The Xinjiang Uyghur Autonomous Region free tibet



XE Login

天安門大屠殺 六四天安門事件 反右派鬥爭 大躍進政策 文化大革命 六四天安門事件 The Tiananmen Square protests of 1989 天安門大屠殺 The Tiananmen Square Massacre 反右派鬥爭 The Anti-Rightist Struggle 大躍進政策 The Great Leap Forward 文化大革命 The Great Proletarian Cultural Revolution 人權 Human Rights 民運 Democratization 自由 Freedom 獨立 Independence 多黨制 Multi-party system 民主 言論 思想 反共 反革命 抗議 運動 騷亂 暴亂 騷擾 擾亂 抗暴 平反 維權 示威游行 法輪功 Falun Dafa 李洪志 法輪大法 大法弟子 強制斷種 強制堕胎 民族淨化 人體實驗 胡耀邦 趙紫陽 魏京生 王丹 還政於民 和平演變 激流中國 北京之春 大紀元時報 九評論共産黨 獨裁 專制 壓制 統一 監視 鎮壓 迫害 侵略 掠奪 破壞 拷問 屠殺 肅清 活摘器官 障テ社會 誘拐 買賣人口 遊進 走私 毒品 賣淫 春畫 賭博 六合彩 台灣 臺灣 Taiwan Formosa 中華民國 Republic of China 西藏 土伯特 唐古特 Tibet 達償ワ喇嘛 Dalai Lama 新疆維吾爾自治區 The Xinjiang Uyghur Autonomous Region free tibet