_NT_SYMBOL_PATH

_NT_SYMBOL_PATH srv*c:\symbols\*http://msdl.microsoft.com/download/symbols _NT_SYMBOL_PATH srv*C:\symbols\os\*http://msdl.microsoft.com/download/symbols;srv*c:\symbols\MetalTomato\;c:\windows\system32 _NT_SYMBOL_PATH SRV*c:\symbols*http://msdl.microsoft.com/download/symbols

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

주중에는 게임 코드를 짜고 주말에는 엔진을 업데이트 하자는 계획에 따라 이번주에도 엔진을 좀 손봤다. 토요일에는 db관련 코드를 짜느라 정신이 없었지만, 일단 db관련 코드는 마무리를 지었으므로 일요일 밤은 엔진에 투자할 정신적 여유가 생겼다. 4DyuchiGX엔진은 라이트맵 계산을 비롯하여 편집용 코드는 몽땅 다 엔진에 들어있다. 툴에서는 엔진의 api만을 사용한다. 따라서 라이트맵 계산 중에 화면을 어떻게 갱신해주느냐 하는 것도, … More 주말 동안 작업 내역-라이트맵 관련

DB에 세이브 기능 구현

두달쯤 전에 ole db를 이용한 멀티 스레드 db억세스 모듈을 하나 만들었었다. 비동기 쿼리함수, 동기식 쿼리함수로 아주 간단한 인터페이스를 가진 DLL모듈이다. 간단한 SELECT문으로 로그인 처리와, 게임의 기본 설정 데이타를 받아오는데만 사용하고 있었다. 이제 캐릭터 정보를 db에 저장하는 기능을 구현하려고 보니 케이스 바이 케이스로 쿼리문을 만들어주는게 무진장 짜증났다. 생각해보면 ole db를 사용하는 이상 모든걸 쿼리로 처리할 필요는 … More DB에 세이브 기능 구현

64비트 어셈에서 스택 사용시 주의사항

엔진과 기타 몇몇 컴포넌트에서 DPC(함수호출에 대한 내용을 일단 저장해두고 나중에 함수 호출)가 필요했기 때문에 꽤 오래전에 DPC 코드를 작성해서  공용 라이브러리 DLL에 넣어놨었다. DPC(Deffrred Procedure Call)를 구현하기 위해서는 가변인자처리를 해야했고, 따라서 어셈블리코드를 반드시 써야만했다. x64랑 x86이랑 calling convention이 달랐으므로 파라미터를 넘기는 부분에서 꽤 애먹었었다. 여튼 코드를 작성해서 지금까지 잘 사용하고 있었다(그렇다고 믿었다.) 몇일전에 그 DPC를 통해서 … More 64비트 어셈에서 스택 사용시 주의사항

x64 어셈블리 쓰기

예전에 어셈블리로 떡 쳐놓은게 64비트 포팅에 상당한 걸림돌이 되고 있다. 어셈코드들을 c코드로 다시 짜고는 있으나, 어쩔수 없이 어셈으로 짰던 코드들은 꽤 골치아팠다. 그 중 하나가 가변인자 처리였다. 엔진의 파일 시스템에서 지원하는 fscanf()함수는 팩킹된 파일인지 일반 파일인지에 따라 자체파싱을 하거나 C런타임 라이브러리의 fscanf()를 호출한다. 팩 파일에서 읽는 경우는 메모리에 읽은 후에 자체적으로 만든 sscanf()로 파싱한다. 뭐 … More x64 어셈블리 쓰기

책 소개 – Show Stopper

예전 홈페이지 http://yuchi.net 에 2005년 2월 5일 작성했던 글입니다. ——————————————————————————– 책 소개랄까..라고 하기엔 아마 책에 대한 내용보단 내 개인적인 잡설이 길겠지. Show Stopper라고 표기할거라 생각하는데 사실 원어판 책은 본적이 없다. 국내에선 백상 미디어에서 ‘빌게이츠의 야망을 가진 남자들’ 이라는 웃기지도 않는 제목으로 번역되어 얼마 안팔리고 절판되었다. 쇼를 중단시키는것..이란 의미인데 즉 소프트웨어가 제대로 돌지 못하게 하는것, 버그라고 … More 책 소개 – Show Stopper

4DyuchiGX엔진 최근 스샷

뭐가 달라졌는지 모르겠다 하실 분도 많겠지만… 내부적으론 많이 바뀌었습니다. 아니 사실 최근까지 라이트맵 관련 디버깅으로 거의 죽는 줄 알았습니다. 라이트맵의 퀄리티 때문이 아니고 때때로 의도하지 않게 나오는 삑사리 때문이었습니다. 가장 치명적인 문제는 포탈/BSP 코드와 연관이 있었는데 아시는 분은 아시겠지만 공간분할 코드와 라이트맵 코드는 관련이 거의 없습니다. 그럼에도 불구하고 엔진에서 라이트맵 빌드 시에는 속도향상을 위해 공간분할 코드들을 … More 4DyuchiGX엔진 최근 스샷

CUDA 로컬 디버깅 설정

2010년에 회사 관두고 여름 내내 한 짓거리가 CUDA 가지고 Ambient Occlusion을 굽는 일이었습니다. 마침 친구의 그래픽 카드 하나를 빌릴 수 있어서 그래픽 카드를 두개 꽂고 CUDA 로컬 디버깅을 적용했습니다. 별로 어렵지 않습니다만 빌린 그래픽 카드를 갖다주고나면 세팅 방법을 잊어버릴것 같아서 기록으로 남겨둡니다. 혹은 CUDA 로컬 디버깅을 고려하고 있는 어느 누군가에게 도움이 될지도 모르겠네요. [Parallel Nsight … More CUDA 로컬 디버깅 설정