본문 바로가기

BSP

2008. 12. 12. 작업일지 [2008. 12. 12 작업일지] BSP 내부지형 자동 분할 기능을 제작 하던 중 맵 툴의 전반적인 수정이 필요하다는 결론을 내렸습니다. 지형 맵이 큰데다가 로직이 잘 못 되었는지 2진트리를 타고 들어가는 재귀호출하다가 스택 오버플로어가 일어 나더군요. 일단은 주말 동안 풀버닝으로 다른 구조와 형태로 맵에디터를 제작 하려 합니다. ( 이미 작업 시작 했음 ) 3D Max 를 신뢰 했다 된통 당했습니다. 1. 그래픽 디자이너가 만들어준 지형이 유닛 단위가 cm 에서는 일치 하였지만 mm 단위에서 0.000 단위의 오차가 생깁니다. 일단 위의 오차는 자체 포맷으로 익스포터 된 데이터를 로더 할 때 소수점 첫번째 자리에서 반올림으로 처리하기로 결정냈습니다. 2. 왜인지는 모르겠지만 노말값이 0.0f, 0.0.. 더보기
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. 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. 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.03. MapEditor 현재까지 Map Editor 진행 상황 BSP 공간 분할에 대한 작업을 하고 있다. 일단 분할면을 기준으로 앞, 뒤의 폴리곤 들은 제대로 분류가 가능하나 겹치는 부분에 대한 처리를 하지 않았다. 또한 트리를 이용하여 Node 정보를 보여주며 노드나 폴리곤 선택시 그 부분만 출력이 가능 하도록 제작 완료. 더보기