본문 바로가기

프로그래밍/맵툴(추가포트폴리오준비)

[맵툴] 8일차.



생각보다 많은 진도를 못나갔지만, 그래도 오늘 작업한 결과를 기록해본다.

D3DX함수 시리즈중에서 관련 기하물체를 만드는 것이 있다.
그것을 셋업하고 렌더하는데 디테일한 설명은 생략하겠다.
D3DXCreateBox, D3DXCreateSphere, D3DXCreateCylinder, D3DXCreateTeapot, D3DXCreatePolygon,  D3DXCreateTours 등등..

붉은 부분의 박스와 픽킹이 가능한 영역(바운드스피어)의 크기는 동일하다.
박스(메쉬데이터LPD3DXMESH),바운드스피어,위치정보가 구조체를 이뤄 STL로 관리해준다. 이거는 대략적으로 7일차에 기록해놓았기때문에 넘어가겠다.

일단은 테스트적으로 텍스쳐를 입혀보았고, 디렉션라이트를 적용해보았다.
프로그램을 짤 때 내 스타일은 1차적으로 샘플을 뽑고 그 샘플에 살을 붙이는 방식으로 프로그래밍을 하는데.. 그 z버퍼가 안먹혀서 조금 차질이 생겨졌다. 게임도 한 하루였기에 그냥 하루가 가버렷다;;

문제점 : Z버퍼를 적용하였음에도 불구하고 정점을 높여도 뒤에 있는 정점표시가 보인다?! 그리고 어느부분의 정점을 높였는데도 불구하고 뒤에 있는 그냥 무시되고 이상하게 보인다? 그냥 다 훤히 보인다? 

해결 :  
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;


m_pd3dDevice->Clear(0,NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER,
  D3DCOLOR_XRGB(125, 125, 255), 1.0f, 0); 

엄청 어리석었던 것 같다. 처음 디바이스셋팅하는 과정이야 대략적으로 살펴만보고 구현에 집중해서 그런지.. 이부분에 신경을 안썻다.
이 부분을 기입안해주어서 제트버퍼가 안먹혔던 것이다. 나는 그것도모르고, 비디오카드가 미쳤나? 이런생각을 했다니 말이다.


수정/보강해야할 사항 : 기하물체를 쉽게작성해주는 D3DXCreateBox함수에 문제점은 텍스쳐가 제대로 안씌워진다는 것이다. FVF가 XYZ하고 노말 포멧만 갖고 있다고한다. 이 부분에대해서 수정해야겠다. 현재까지 코드에서 해제/릴리즈 하는 과정을 다시 한번 살펴본다.

그다음 구현해야할 사항 : 텍스쳐에 대해서 전체 맵에 nxn사이즈로 조율할 것인지 구현후 대화상자에서 텍스쳐관련추가,  지형높낮이를 눈으로 비교하는데에는 명암이 있어야한다. 그렇기 위해서 라이트부분에 대해서 신경써서 위치시킨다.


느낀점 : MFC는 하면 할수록 편하다.

'프로그래밍 > 맵툴(추가포트폴리오준비)' 카테고리의 다른 글

[맵툴] 10일차분 재수정  (0) 2010.02.18
문제점 발생  (0) 2010.02.12
[맵툴] 7일차  (0) 2010.02.07
[맵툴] 6일차.  (0) 2010.02.06
[맵툴] 5일차.  (0) 2010.02.05