병목(Bottleneck)

순후추·2023년 12월 24일

그래픽스

목록 보기
2/4

최적화 방법

- 텍스쳐 크기 줄이기
- 가벼운 쉐이더 사용
- 드로우콜 줄이기
- 배칭 줄이기
- 게임 로직 최적화
- 물리 연산 줄이기 (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씬은 낮은 해상도

profile
게임 개발 블로그

0개의 댓글