최적화 방법
- 텍스쳐 크기 줄이기 - 가벼운 쉐이더 사용 - 드로우콜 줄이기 - 배칭 줄이기 - 게임 로직 최적화 - 물리 연산 줄이기 (Transform 같이 물리체계, 계산체계 두 번을 거치는 것들은 피하기) - LOD (Level Of Detail) : 레밸이 멀어질수록 더 낮은 디테일로 렌더링
CPU바운드 vs GPU바운드
CPU에서 병목 -> CPU바운드 GPU에서 병목 -> GPU바운드 CPU와 GPU는 병렬처리 방식, CPU가 먼저 일을 처리 한다면 GPU는 CPU의 일이 끝날 때까지 기다려야 함
GPU 바운드
필레이트 : GPU가 1초에 렌더링 할 수 있는 픽셀 수
- 화면의 픽셀 수 - 프래그먼트 쉐이더 복잡도 - 오버드로우 레스터라이저 스테이지에서 병목 현상이 발생 할 수 있는데, CPU 연산부족이 원인이 될 수 있다.오버드로우 : 렌더링 되는 픽셀이 덧그려지는 현상
이때 Z버퍼는 많은 도움을 준다. 가령 투명한 픽셀이 오버드로우 되는 상황이라면 Z버퍼가 더 효과적이다. 그럼에도 투명한 오브젝트를 많이 쓰는 것은 블렌딩, sort order, 깊이 테스트(Z버퍼)등 많은 연산을 요구하기 때문에 피하는 것이 좋다포스트프로세싱 : 컬러 커브, 색 수차등등 여러가지 픽셀 효과
포스트프로세싱은 픽셀 단위 처리를 하기 때문에 프래그먼트 쉐이더가 무거워지게 되는데 이는 해상도를 줄여서 해결 할 수 있다.업스케일링 샘플링 : UI만 원래 해상도, 3D씬은 낮은 해상도