yuchi's Development Home
글 수 201
구현된 기능
-기본적인 ROOM 모델링 기능(기본 브러쉬로 closed mesh 작성,scale,rotate,move)
-ROOM간 boolean 연산 기능
-ROOM의 벽에 포탈 드로잉 기능
-바깥 외벽 매쉬와 ROOM의 포탈간에 통로를 뚫어주는 기능
-기본 내외벽 매쉬로 bsp빌드. 임의의 리프가 어느 ROOM에 속하는지 찾을 수 있음.
-언급한 기능을 포함하여 툴에서 사용하는 에디팅 기능 몽땅 엔진에서 API로 지원.
미구현 기능
-구조물 데이타를 맥스에서 읽을 수 있도록 하는 맥스 플러그인
-육면체 이외의 기본 브러쉬 제공
-외부 개체 삽입,삭제,업데이트 기능
-기타 UI 및 편의 기능
실제 게임에 올릴 매쉬데이타나 캐릭터를 트리에 인서트하고 렌더링 하는 기능이 전혀 구현되어있지 않으므로 사실상 현재는 이걸 가지고 할 수 있는게 아무것도 없다.
하지만 미구현된 기능들은 이미 전에 만들어봤던 기능이고 지금 돌아가는 bsp구조에서도 사용하고 있다.
현재까지 구현한 내용은 전에 한번도 만든적이 없는 기능이다. 따라서 별 문제 없이 남은 기능들은 구현할 수 있으리라 생각한다.
사실 이번 글의 주 내용은 어디까지 했느냐가 중요한게 아니고...
z-sort 만들어봤다는 얘길 하고 싶었다.
그까이꺼 뭐 대단하냐고 할 수도 있겠지만, 처음 해보는거라서...
아마 게임회사에서 일하면서 이런거 만들 일도 별로 없지 싶다.
이놈의 툴을 만들다보니 알파블랜딩이 반드시 되어야 하는 때가 생겼다.
스샷에서처럼 룸들을 만들고 외벽을 덮어씌우게 되는데 이때 외벽을 반투명 처리 하지 않으면 거의 작업이 불가능했다.
그런데 외벽을 알파블랜딩 하려니 폴리곤간에 zsort문제가 생겼다.
맥스같은 툴도 아니고 최소한의 기능만 구현되면 된다고 생각했기 때문에 대충 처리하고 넘어가려고 했으나, 도저히 무시할 성질의 것이 아니었다.(사실은 zsort를 만들어보고 싶기도 했다.)
결국 BSP를 이용한 z-sort 코드를 집어넣었다.
나름대로 신경써서 짠다고 짰는데, 그래도 삼각형 하나 그릴때마다 트리를 타고 면 앞뒤 판정하고, 걸치면 쪼개서 또 돌아야하니 졸라리 느린건 어쩔 수 없다고 생각했다.
다행히 생각보다 느리진 않았다.
이 툴에서 작업할 정도의 폴리곤 수라면 별 문제없이 실시간 처리가 가능할듯 싶다.
사실 bsp를 이용한 z-sort는 처음 해보는 것이라 재밌었다. 폴리곤의 z-sort가 필요하기도 했지만 그 구실로 좀 재밌는 이슈를 다뤄보고 싶었을지도?
어쨌든 제대로 돌아가니 기쁘다.
위쪽 스샷은 z-sort없이 렌더링.
아래쪽은 z-sort스샷이다.