Hacker News인프라 · 데브옵스

블록 게임에 소프트웨어 오클루전 컬링 구현하기

원제 Software occlusion culling in Block Game

102 포인트댓글 9
Key Point

약한 하드웨어에서도 블록 게임의 성능을 크게 개선할 수 있는 실용적인 소프트웨어 렌더링 기법의 구체적 구현 과정과 최적화 단계를 보여준다.

핵심 요약

  • 약한 통합 GPU(Radeon Vega 8)에서도 성능을 내기 위해 깊이 기반 오클루전 컬링을 소프트웨어로 직접 구현했다.
  • CPU에서 256x128 해상도의 깊이 버퍼에 큐브를 렌더링하고 후보 청크를 검사해 숨겨진 기하학을 제거하는 방식으로, 절반 프레임 이내에 완료되며 지하 동굴에서는 95% 이상의 청크를 컬링할 수 있다.
  • 청크당 16x16x16 크기 내에서 5단계의 계층적 서브청크 레벨을 구축해 가까운 것은 작은 단위로, 먼 것은 큰 단위로 처리한다.
  • 초기 구현(150-200ms)에서 출발해 3x3 행렬 회전과 선형 깊이 사용(99ms), 월드 공간 절두체 컬링(61ms), 보이는 면만 고려(34ms), 근거리 오클루더 우선 처리(29ms) 등으로 최적화했다.
  • 계층적 서브청크 레벨 구현으로 최종 성능을 4ms로 단축했으며, 이는 원본 대비 0.04배의 시간만 소요하는 수준이다.
  • 높이 올라갈수록 작은 오클루더가 픽셀로 축소되고 가까운 불투명 블록이 20칸 범위 내에 없으면 컬링 효율이 25% 이하로 떨어진다는 한계가 있다.
  • 1픽셀 내삽으로 인해 청크 경계에 간격이 생겨 일부 청크가 컬링되지 않지만 실제 성능 영향은 미미하다.
  • 향후 1픽셀 두께의 슬라이스 서브청크 도입, 높은 렌더 거리에서 슈퍼청크 그룹화, SIMD 최적화 등을 검토 중이다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗