삼각형 베이스 맵에서의 SW Occlusion Culling

삼각형 베이스 맵에서의 SW Occlusion Culling 작업중.
복셀 지형을 렌더링할때 성능향상을 위해 사용했던 SW Occlusion Culling을 삼각형 베이스 맵에도 적용한다.
KD-Tree를 순회할때 카메라 위치에 가까운 leaf부터 방문하게 되므로 방문하는 leaf의 삼각형들을 차곡차곡 Rasterize/z-test 해가면 z-buffer상에서 가려지는 leaf는 조기에 제외시킬 수 있다.
SW Rasterizer/Tester는 작년까지 죽어라 다듬어놨기 때문에 더 손볼게 없다.
512×512버퍼에 KD-Tree를 순회하면서 프러스텀에 걸치는 leaf의 삼각형들을 모두 그려봤다.(왼쪽 상단)
불필요한 rasterize를 줄이기 위해 Occluder로 사용할 삼각형을 선별할 필요가 있지만 SW Rasterize성능이 궁금해서 그냥 다 그렸다.CPU로 삼각형 찍는게 꽤 느린 작업이다.그럼에도 불구하고 디버그 빌드로 60프레임 이상은 나온다.확실히 복셀 기반 맵일때보다 효율이 좋다.
복셀 월드에선 SW Raterize/Test 성능이 기대 이하라서 애먹었다.
커다란 삼각형이 SW Rasterize하기 좋은데, 복셀(특히 50cm x 50cm x 50cm짜리)은 너무 자잘한 삼각형이 많이 나온다.

내심 PVS보단 이쪽을 기대하고 있다. 별도의 수고가 전혀 필요없으니까.

2020-05-27_SWOcc


답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

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

Google photo

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

Twitter 사진

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

Facebook 사진

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

%s에 연결하는 중