CS/그래픽스

[Rendering Optimization] Stage 8 : Framebuffer (Presentation)

tae-woong 2026. 1. 20. 18:43

해상도, 주사율, 포맷 설정으로 제어 가능한 영역입니다.

 

개요

렌더링 파이프라인의 종착역입니다.

 

최종 완성된 이미지가 저장되는 곳이며, 모니터 주사율(Hz)에 맞춰 화면에 뿌려주는 단계입니다.

 

단순히 저장만 하는 게 아니라, 최종 품질과 성능의 타협점을 결정하는 곳입니다.

 

<핵심 목표>

  1. Pixel Budget : 처리해야 할 픽셀 총량을 관리합니다. (해상도)
  2. Memory Budget : 프레임버퍼가 차지하는 용량을 관리합니다. (비트 심도)
  3. Frame Pacing : 화면 찢어짐이나 버벅임을 관리합니다. (V-Sync, FPS Cap)

 

최적화 방법

1. Resolution Scaling (동적 해상도 조절)

  • 설명 : UI는 디바이스의 최고 해상도(Native)로 선명하게 유지하고, 부하가 큰 3D 렌더링 화면만 70~80% 크기로 줄여서 그리는 기법입니다. (DPI Scaling)
  • 이전 단계의 영향 : (※ 8단계 설정이 전체에 영향을 줌)
    • Stage 5 (RS) & Stage 6 (PS) : 픽셀 쉐이더가 처리해야 할 픽셀 수가 제곱(가로x세로)으로 줄어들어, 가장 확실한 성능 향상을 보장합니다.
  • 장점 :
    • 저사양 기기 구세주 : 퀄리티 저하 대비 성능 향상 폭이 압도적입니다.
  • 단점 :
    • 화질 저하 : 3D 외곽선이 흐릿해질 수 있습니다. (FSR, DLSS 같은 업스케일링 기술로 보완)
  •  

2. Color Depth Optimization (16-bit Framebuffer)

  • 설명 : 한 픽셀의 색상을 저장할 때 32-bit (RGBA8888) 대신 16-bit (RGB565) 포맷을 사용합니다.
  • 지금 단계에 효과 :
    • Stage 8 (FB) 자체 : 프레임버퍼가 차지하는 메모리 용량과, 이를 읽고 쓰는 대역폭이 정확히 절반으로 줄어듭니다.
  • 장점 :
    • 메모리 & 대역폭 절약 : 저사양 모바일 기기에서 메모리 부족(OOM)을 막고 속도를 높입니다.
  • 단점 :
    • Color Banding : 색상 표현 단계가 줄어들어, 하늘이나 어두운 곳에서 그라데이션 층이 지는 현상이 발생할 수 있습니다. (Dithering 기술로 완화)
  •  

3. Target Frame Rate (FPS 제한)

  • 설명 : 게임이 낼 수 있는 최대 성능을 제한하여 30 FPS 또는 60 FPS로 고정(Cap)하는 것입니다.
  • 이후 + 지금 단계에서 효과 :
    • Pipeline 전체 : GPU가 1초에 100프레임을 그릴 수 있어도 60프레임만 그리고 쉽니다(Sleep). 과부하를 막고 발열을 예방합니다.
  • 장점 :
    • 배터리 절약 및 발열 제어 : 모바일 게임에서는 필수입니다. 불필요하게 120 FPS를 뽑느라 배터리를 녹이는 것을 방지합니다.
  • 단점 :
    • 반응 속도 : FPS를 낮게 잡으면(30 FPS) 게임의 조작감이 둔해질 수 있습니다.
  •  

4. On-chip MSAA (모바일 전용 안티앨리어싱)

  • 설명 : TBDR 아키텍처의 특권입니다. 보통 PC에서 MSAA(안티앨리어싱)는 매우 무거운 옵션이지만, 모바일에서는 타일 메모리(On-chip) 안에서 계단 현상 처리를 끝내고 RAM으로 내보내기 때문에 성능 비용이 거의 공짜(Very Cheap)에 가깝습니다. (보통 4x MSAA까지는 부담 없이 사용)
  • 지금 단계에서 효과 :
    • Stage 8 (FB) : 매우 적은 비용으로 외곽선 계단 현상을 제거하여 고품질 이미지를 얻습니다.
  • 장점 :
    • 가성비 최고 품질 : 모바일에서 가장 효율적인 품질 향상 방법입니다. (Post-processing AA보다 선명함)
  • 단점 :
    • 메모리 약간 증가 : 타일 메모리 사용량이 늘어나지만, 최신 기기에서는 큰 문제가 되지 않습니다.