#gdc11 #review Culling the Battlefield: Data Oriented Design in Practice

less than 1 minute read

DOD로 기존 컬링 코드(Frustum vs sphere)를 3배 더 빠르게 만들었다.

왜? 새로 만들었나?

nil

  • Job을 더 할당해도 안 빨라진다. 스케일링 불가능.

nil

새로 만든 컬링 특징

nil

nil

  • 스케일링이 가능하게 하고 branch를 줄이기 위해 tree 구조를 버리고 array로 구현.
  • 이전보다 3배 빨라졌다.

nil

  • 짠! 병렬로 돌아가는 스레드(thread) 보소.

새로운 컬링을 좀 더 자세히

nil

  • 병렬 처리를 위해 그리드로 나누는 전략

nil

  • DOD로 설계

frustum vs sphere intersection 코드

nil

  • LHS(load-hit-store), branch가 많은 옛날 코드

nil

nil

  • 재정렬 후 9 instruction으로 해결

발표