요새 작업중인 복셀 관련…

지난 주까지 Hierachical Z Map Occlusion Culling 작업을 했다.

회사 안다니는 동안 DX11로 이것저것 만든 덕에 크게 고생은 안하고 Compute Shader를 사용하는 DX11용 HiZ Map Occ Culling을 구현했다.

대충 돌아가게 만들었는데 실제로 HiZ Map Occ Culling을 잘 활용하려면 Occlusion을 자동으로 생성해주는 기능이 필요한것 같다.

문서와 예제 소스 코드도 구할 수 있어서 구현해보기로 했다.

일단 모델을 Voxelize하는건 구현했다.

내 식대로 (무식한 방법)으로 해봤으나 몇 가지 문제가 있어서 문서를 다시 읽어보고 소스코드 분석해보고 다시 짰다.

Surface Voxelization과 Soild Voxelization 두 가지로 구현해서 테스트 해봤다.

Solid Voxelization의 경우 테스트용 모델이 완전한 watertight모델이 아니라서 새는 곳이 있다. 미쿠의 머리카락 부분은 새는게 맞고 손목 부근이나 다른 부분은 안쪽에 사용하지 않는 숨겨진 삼각형이 있는것 같다.

대충 어떻게 하면 될지 감은 잡은듯.

생각보다 꽤 재밌다.

좌측으로부터 원본 / Surface Voxelization / Solid Voxelization이다.

970c8d5f14b6f1ce0bf483ee15fc80f0 b982c928e811774ca03cd24e06e17cf1


답글 남기기

댓글을 게시하려면 다음의 방법 중 하나를 사용하여 로그인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중