본문 바로가기

전체 글115

2008. 12. 15. 작업일지 [2008. 12. 15. 작업일지] 오늘 아침 6시까지 작업을 하고 2시간 자고 학원에 갔다. 요새 점점 수면시간이 줄어 들고 있다. 사람이 다급해지니깐 수면시간이 확 줄었는데도 피곤하지가 않다. 학원에서는 팀내 일이 있어서 툴작업은 아예 못하고 몇몇 버그 정도 수정만 하였다. 현재 간단히 셰이더를 넣어서 대충 게임 배경과 비슷하게 연출 해 보았다. 카메라 방향쪽으로 광원을 주어 카메라가 보는 곳만 살짝 밝아진다. (위에 스샷 2장은 같은 위치에서 카메라만 살짝 돌려 찍은 스샷이다.) 학원에서 돌아와서 픽킹 작업을 검사로직까지 구현하였다. 이제 픽킹 마무리 짓고 BSP 분할로직을 구현하면 뒤엎기전의 툴의 90% 이상 복구가 된다. 오늘 내년도 병특 TO를 오늘 확인하게 되었는데... 정말 하루 2시간 .. 2008. 12. 16.
2008. 12. 14. 작업일지 [2008. 12. 14. 작업일지] 주말 버닝으로 코드 및 로직이 다 바뀌었다. 아직 기존툴 기능이 다 구현되지는 않았지만 맵파일 로드에서 부터 랜더까지는 완벽하게 된다. 예전 툴에 비해 퍼포먼스도 상당히 많이 올라갔다. 기존툴에서 전체 맵을 출력할 때는 고작 60fps 가 200fps 정도로 엄청나게 올라갔다. 기존의 툴은 DrawPrimitiveUP을 썼었고 새로운 툴은 DrawPrimitive를 쓰며 호출 횟수도 상당히 줄었다. 새로운 툴의 구조가 상당히 바뀐게 눈으로도 보인다. 기존에 없던 섹터클래스나 포탈클래스 그리고 BSP 로직을 바꾸면서 필요한 익스포터 된 파일을 필요한 데이터 포맷으로 바꿔주는 컨버터 클래스 ( 뭥미... ) 등 새로운 것들이 추가 되었다. 그리고 이번 코드는 기본이 쉐이.. 2008. 12. 14.
2008. 12. 12. 작업일지 [2008. 12. 12 작업일지] BSP 내부지형 자동 분할 기능을 제작 하던 중 맵 툴의 전반적인 수정이 필요하다는 결론을 내렸습니다. 지형 맵이 큰데다가 로직이 잘 못 되었는지 2진트리를 타고 들어가는 재귀호출하다가 스택 오버플로어가 일어 나더군요. 일단은 주말 동안 풀버닝으로 다른 구조와 형태로 맵에디터를 제작 하려 합니다. ( 이미 작업 시작 했음 ) 3D Max 를 신뢰 했다 된통 당했습니다. 1. 그래픽 디자이너가 만들어준 지형이 유닛 단위가 cm 에서는 일치 하였지만 mm 단위에서 0.000 단위의 오차가 생깁니다. 일단 위의 오차는 자체 포맷으로 익스포터 된 데이터를 로더 할 때 소수점 첫번째 자리에서 반올림으로 처리하기로 결정냈습니다. 2. 왜인지는 모르겠지만 노말값이 0.0f, 0.0.. 2008. 12. 12.
2008.12.08. 작업일지 [2008. 12. 08 작업일지] 오늘은 BSP가 이상하게 작동하여 하루종일 그것만 보느라 삽질 하였다. 같은 평면에 있으며 노말 방향이 같은데도 어느쪽은 Front 노드에 어느쪽은 Back Node에 넣어지는 버그를 발견 한 것이다. 처음에는 내 쪽 처리가 문제인가 하고 보았다. 하지만 테스트용으로 만들었던 맵 파일은 제대로 분할이 되는거 였다... 그래서 맵 데이타 파일을 보았다... 이럴 수가 맵 파일 수치가 약간씩 오차가 생겨 있는 것이다. #MESH_FACENORMAL 123 -0.0000 1.0000 0.0000 // 페이스 노말 400.0001 -2649.8442 0.0000 -0.0000 1.0000 0.0000 // Vertex X, Y, Z Normal 400.0000 -2649.84.. 2008. 12. 8.
2008.12.06. 작업일지 [2008.12.06. 작업일지] 주말에도 나와서 작업하기로 했던 조원들이 모두 안나왔다..... 두고보자....... 우리조에서 혼자 학원에 와서 작업... ( ㅠㅠ ) 오늘은 기능 보다는 툴 인터페이스 쪽으로 디자인 하였고 어제 작업하였던 BSP 분할에서 메모리 릭이 있어 그 부분을 잡았다. [작업1] MapMgr 구현 원래 게임 내부 건물이 2층 건물이였다. 그래서 각 층을 이어줘야 하므로 여러맵을 읽어와서 관리 할 수 있도록 맵 매니저를 통한 맵을 관리 하도록 구조를 세웠었다. 그런데 현재 나온 한층 조차도 너무 맵이 넓어 ( DX 카메라 시야 10000.0f 에서도 잘 안보인다..-_-;; ) 단층으로 가기로 결정 했지만 나중을 위해서라도 이미 구현해놓은 맵 매니저를 안쓰긴 아까워서 오늘은 맵매.. 2008. 12. 6.
2008. 12. 05. Indoor Polygon Divide Logic 2008/12/05 - [Ψ Develop/Δ Map Tool 3D] - 2008. 12. 05. Map Editor 내부지형 맵에디터 제작 하면서 폴리곤 분할에 사용했던 로직이다. 이 방법이 제대로 된 방법인지는 모르겠지만 여러 생각 끝에 나온 방법이다. 먼저 위의 폴리곤은 0 -> 1 -> 2 의 순서대로 그리는 폴리곤이다. 위의 폴리곤을 중간의 선으로 나눈다고 가정 하였을 때 다음과 같은 작업을 한다. ( 분할면의 노말은 3->4, 0->4->2 Back 같은 경우 3->1->4 로 그린다. 위와 같이 그릴 때 다음과 같은 공통점이 있다. 01. 첫번째 그릴 정점은 저장소의 첫번 째 정점이다. 02. 처음 정점을 제외한 다음 정점들이 2개씩 묶어서 그린다. 그래서 나온 공식은 다음과 같다. 그리는 .. 2008. 12. 5.
2008. 12. 05. Map Editor 2008/12/05 - [Ψ Develop/Δ Map Tool 3D] - 2008. 12. 05. Indoor Polygon Divide Logic BSP 분할에 대한 처리를 완료 하였다. 이전 까지는 나눌 면과 겹치는 면에 대한 자르는 부분이 추가가 되지 않아 임시로 Front, Back 노드 두 곳에 넣어 놨었다. 그리고 오늘 면 분할기능을 추가하여 제대로 된 BSP 분할을 처리 하였다. 위의 사진은 공간 분할을 하기 전의 이미지 이다. ( 텍스처는 졸작 기획자 정현이형의 좀비 사진인지라 모자이크 처리... ) 왼쪽 상단에 보면 WALL #0 ~ 3 까지 총 4개의 폴리곤으로 구성이 되어 있다. 분할 이후 Front Node의 모습이다. Front 노드의 폴리곤 수는 총 5개 이다. 분할 이후의 Ba.. 2008. 12. 5.
2008.12.03. MapEditor 현재까지 Map Editor 진행 상황 BSP 공간 분할에 대한 작업을 하고 있다. 일단 분할면을 기준으로 앞, 뒤의 폴리곤 들은 제대로 분류가 가능하나 겹치는 부분에 대한 처리를 하지 않았다. 또한 트리를 이용하여 Node 정보를 보여주며 노드나 폴리곤 선택시 그 부분만 출력이 가능 하도록 제작 완료. 2008. 12. 3.
D3DCOLOR <-> COLORREF 현재 작업 중인 툴에서 조명 색상을 설정 할 수 있게 작업 하는 도중에 툴* 에서 사용하는 색상 값은 COLORREF 값을 사용한다. 0x00bbggrr 형태인 COLORREF 에서 D3DCOLOR 형태인 0xaarrggbb 형태로 변환이 필요하기에 만든 간단 매크로 이다. ( a = Alpha , r = Red , g = Green , b = Blue ) // D3DCOLOR -> COLORREF #define D3DCOLORTOCOLORREF( color ) (COLORREF)((color & 0xFF000000) | ((color & 0xFF0000) >> 16) | (color & 0xFF00) | ((color & 0xFF) 16) ) 2008. 11. 29.
내부지형 구조체 ///////////////////////////////////////////////////////////////////////// // struct tagWall // Desc : tagWall 구조체 // Author : deviAk ////////////////////////////////////////////////////////////////////////// struct tagWall { WALLVERTEXWallVertex[3];// 벽 버텍스 D3DXVECTOR3 WallNormal;// 벽 노말 INTWallTexIndex;// Texture Index }; /////////////////////////////////////////////////////////////////////////.. 2008. 11. 28.
2008.11.20. MapEditor KGCA 아카데미 졸업작품으로 만들고 있는 맵 에디터... 외부지형과 내부지형이 같이 들어가 있으며 외부는 다른 팀원이 담당하고 있고 내가 담당하는 부분은 내부 지형... 그래픽 쪽에서 작업한 맵을 자체 제작한 익스포터로 추출한 후 에디터에서 불러 올 수 있다. 현재 그래픽에서 맵의 맵핑 작업이 안되어 일단은 텍스처를 제외하고 임시로 색상을 넣고 와이어 프레임으로 출력 했다.. 현재 이 맵의 폴리곤 수가 약 4800개가 넘는다. 버텍스로 따지자면 폴리곤 * 3 이므로 13000 여개가 된다.. 맵을 한번 랜더 할때마다 폴리곤 단위로 랜더를 하니 약 4800 번을 랜더하게 되서 FPS가 2000 가까이 떨어진다. 물론 툴에서는 퍼포먼스를 생각지 않았다. 추후 BSP 나 컬링을 추가하게되면 게임상에서는 퍼포.. 2008. 11. 20.
Chapter 5.1 Ase Materal D3D와 3D Max는 Matrerial에 대해서 다른 개념을 가지고 있다. 3D Max의 Material은 D3D Material + D3D Texture 3D Max의 Material은 다층 구조 Material D3D는 Material이 하나의 Material정보만을 가지고 있다. 그러나 3D Max에서는 Material이 하나의 Material이 여러 개의 Sub Material을 가질 수 있다. 그리고 그 Sub Material은 다시 또 하나의 Material로 인식되어 자신의 Sub Material을 가질 수 있다. 다양한 3D Max의 Material 3D Max의 Material은 다양한 계층구조 방법과 이론적으로 다양한 방법의 계산법.. 2008. 9. 30.