주말 동안 작업 내역-라이트맵 관련

4dyuchigx_2008_0204

주중에는 게임 코드를 짜고 주말에는 엔진을 업데이트 하자는 계획에 따라 이번주에도 엔진을 좀 손봤다.

토요일에는 db관련 코드를 짜느라 정신이 없었지만, 일단 db관련 코드는 마무리를 지었으므로 일요일 밤은 엔진에 투자할 정신적 여유가 생겼다.

4DyuchiGX엔진은 라이트맵 계산을 비롯하여 편집용 코드는 몽땅 다 엔진에 들어있다.

툴에서는 엔진의 api만을 사용한다.

따라서 라이트맵 계산 중에 화면을 어떻게 갱신해주느냐 하는 것도, 90%정도는 엔진코드에 달려있다.

일전에 라이트맵 계산 코드 왕창 뜯어고칠때 계산 속도도 그렇고, 코드가 복잡해지는게 신경쓰고 싶지 않아서 라이트맵 계산중에는 화면을 갱신하지 못하게 고쳐 놨었다.

그 결과 라이트맵 계산 버튼을 누르는 순간 화면이 허~옇게 되면서 계산 끝날때까진 텍스트 올라가는거 말고는 볼 수가 없었다.

한 일주일 그렇게 빈 화면을 보고 있자니 아무래도 허전했다. 뭐 없어보이기도 하고.

해서 계산과정을 화면에 보여주기로 결정. 멀티스레드 환경인지라 원래 싱글스레드를 전제로 한 렌더러 코드랑 맞물리면 썩 안전하지 못했다. 따라서 이 부분을 해결하느라 좀 애먹었다.

그 와중에 메모리가 대량으로 새는 것을 발견.

이럴수가. 내가 메모리 새는건 수치중의 수치로 생각하는 사람인데…

방금 고친 부분때문인가 했는데 열라게 뒤져본 끝에 지난주에 고친 코드가 원인인 것을 알아냈다.

계산중에 화면 갱신해주는 기능을 넣는데는 1시간 밖에 안걸렸지만 메모리 누수를 잡는데는 3시간 이상 걸렸다.(덕택에 출근할때까지 4시간도 못잘듯T_T)

버그 잡고 코드를 깔끔하게 정리하고 체크인했다.

기념으로 스샷 한장.

계산과정중에 prtscr키를 눌러 잡은 화면이다. 태스크 매니져 화면을 보면 cpu의 코어 4개를 모두 사용함을 알 수 있다.

사실 코어 4개가 모두 작동하는 이 샷을 찍고 싶었는데, 지금까진 라이트맵 계산할때 화면을 안보여줬잖아.

이제는 샷을 찍을 수 있게 되었으니..움화화.

아 졸려.허리 아프다.


답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중