yuchi's Development Home


간만의 밤샘 코딩

조회 수 3015 추천 수 44 2008.01.13 08:38:19
자정쯤에 석촌호수를 한바퀴 돌고왔다.

걸어다니면서 꽤 많은 생각을 했고, 그 과정에서 좀 더 편하게 오클루젼을 생성할 수 있는 아이디어를 떠올렸다.

집에 돌아와서 바로 코딩 시작.

일단 최근 발견한 오클루젼 편집 기능의 버그를 잡기로 했다.

오클루젼을 생성하면 어딘가 이상한 위치로 튀는것처럼 보이는 버그였는데, 좀 더 확실한 체크를 위해서 z버퍼를 무시하고 오클루젼을 렌더링 하는 코드를 넣기로 했다.

그런데 보다보니 오클루젼 렌더링을 비롯하여,박스,스피어등 immediate 렌더링 함수들의 렌더링 옵션이 어느 새 요상하게 섞여 버린걸 발견.

순전히 내 불찰인데 일단 눈에 거슬리니 깔끔하게 정리하기로 했다.

렌더모드와 렌더타입 두 가지로 확실히 구분하고 렌더러의 함수들을 고쳤다.

렌더러DLL의 몇 가지 함수들을 고쳤으므로, 지오메리트DLL의 함수들도 수정해야했다.

버그를 막기 위해 일부러 함수 프로토타입을 고쳤다.

지오메트리에서 줄줄이 쏟아져 나오는 신택스 에러를 찾아서 수정했다.

이제 엔진을 사용하는 맵툴과 게임 클라이언트를 고쳤다.

정상작동을 확인한 후 툴에 오클루젼 렌더링시 z버퍼를 무시하는 옵션을 넣었다.

여기까지 하니 새벽 3시반쯤.

이제 오클루젼 코드를 보기 시작.

일단 위치가 엄하게 튀는것은 복합적인 문제였다. 수학적 논리가 잘못된 코드들을 찾아냈다.

한참 뚫어지게 보긴 했지만 어렵지 않게 잡았다.

여기까지 하니 새벽 5시쯤.

예전에 오클루젼 편집 하다보면 가끔 크래쉬하곤 했는데, 그 문제도 잡기로 했다.

이리저리 테스트 해서 크래쉬하는 경우를 재현할 순 있게됐다.

오클루젼은 공간에 어떻게 걸쳐지느냐에 따라 사이즈가 바뀌므로, 일종의 가변 스트럭쳐를 사용한다. 그래서 malloc(),free()를 사용하는데 어느 순간인가 힙을 해제한 다음 다시 써넣어서 힙체크에 걸리고 있었다.

한참을 삽질한 끝에 엔진의 렌더링 큐에 들어간 상태로 오클루젼을 삭제하면, 다음번 렌더링 할때 이미 삭제된 오클루젼의 플래그를 0으로 세팅하게 되는 것을 발견.

카메라를 조정하지 않으면 크래쉬하지 않는 이유도 여기 있었던 것이다. 카메라가 움직이지 않으면 렌더링 큐에 넣을 오클루젼도 갱신하지 않으니까.

다이나믹 렌더링 오브젝트들에 관해서도 동일한 문제가 있을것으로 보고 코드를 뒤져보니 역시나 문제의 소지가 있었다. 단 오클루젼을 제외한 대부분의 개체들은 자체 메모리풀을 사용하고 있으므로 딱히 힙체크에는 걸릴 일이 없었던 것이다.

어쨌건 잠재적인 문제까지 수정하고 테스트하니 아침 8시가 훌쩍 넘었다.

간만의 밤샘 코딩. 원래 하려던 오클루젼 생성 기능 추가는 못했지만, 현존하는 버그와 잠재적인 버그를 수정했다. 또한 그 동안 잊고 있었던 코드들을 리뷰하는 알찬 시간이었다.

뿌듯하다.

교회 갈때까지 좀 자야겠다.






파일 첨부

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

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

0개 첨부 됨 ( / )
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
天安門大屠殺 六四天安門事件 反右派鬥爭 大躍進政策 文化大革命 六四天安門事件 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

Think



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