GPGPU를 이용한 PVS 계속 진행중.
1. 월드의 삼각형들 -> 복셀화
2. 복셀화된 월드를 KD-Tree로 빌드
3. KD-Tree에서 삼각형과 교차하지 않는 순수한 육면체 leaf들을 얻어냄
4. 각 leaf들에서 다른 leaf들에 대해 visibility 테스트
5. 그 결과를 leaf별로 Bit 테이블로 저장.
녹색 선이 leaf의 영역을 나타내는 박스.
빨간색 사각형들이 현재 위치한 leaf의 사각형들.
노란색 사각형들이 이 leaf에서 PVS검사를 수행할 타겟 leaf의 사각형들.
속도는 그럭저럭.
보이지 않는 leaf와 보이는 leaf도 제대로 걸러주는것 같다…가 아니고 코드 자체는 정상 작동하는데, 보이는 것이 명백함에도 불구하고 보이지 않는 것으로 처리되는 leaf들이 있다.
뼈빠지게 버그 잡고 코드 다듬어서 GPU를 이용한 culling 자체는 제대로 된다.
다만 육면체로 360도 렌더링할때 생각을 잘못했다.
leaf안에서 시점을 중점에 있다고 가정하고 뷰프러스텀 6개를 구한게 실수.
각 모서리에서의 뷰프러스텀을 모두 합산한 영역을 뷰프러스텀으로 해야한다.
이것만 수정하면 정상적으로 작동하리라고 믿어본다.