Modern Rendering Culling 기법
·2026.04.19 16:54
거리·프러스텀·오클루전부터 GPU-driven 클러스터 culling까지 정리한다.
culling은 렌더링에서 아예 할 필요 없는 작업을 줄이는 핵심 최적화다.
- 기본 culling: 거리, backface, frustum culling이 가장 싸고 널리 쓰인다.
- 거리 culling: 먼 오브젝트를 제외하지만, pop-in을 줄이려면 LOD, dither fade, impostor와 함께 써야 한다.
- backface culling: 닫힌 mesh의 뒷면을 건너뛰어 rasterization/fragment 비용을 줄인다.
- frustum culling: bounding sphere/AABB로 카메라 시야 밖 오브젝트를 제거한다.
occlusion culling은 다른 물체 뒤에 가려진 대상을 제거한다.
- Hardware Occlusion Query는 GPU가 보이는 sample 수를 알려주지만, 결과 확인에 지연이 있다.
- Software Occlusion Culling은 CPU가 저해상도 depth buffer를 rasterize해 즉시 판정하지만 CPU 비용이 든다.
- Hi-Z는 depth pyramid를 이용해 보수적으로 가림 여부를 테스트하며, 현대 GPU-driven occlusion의 기반이 된다.
- Two-pass occlusion culling은 이전 프레임 Hi-Z로 먼저 거르고, 다시 한 번 재검사해 막 생긴 가시 오브젝트를 살린다.
그 밖의 실전 기법도 함께 다룬다.
- Screen size culling: 월드 거리보다 화면 점유 면적으로 판단하는 방식이다.
- PVS: 지역별로 볼 수 있는 공간을 미리 계산해 런타임 비용을 줄인다.
- Portal culling: 문/통로를 기준으로 실내 공간을 단계적으로 좁혀 간다.
마지막으로 GPU-driven rendering으로 넘어가면, compute shader가 culling을 수행하고 surviving object만 indirect draw 버퍼에 압축해 넣는다. 이렇게 하면 CPU가 매 오브젝트를 순회하지 않아도 되고, meshlet/cluster 단위로 더 세밀한 culling이 가능해진다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.