Game Dev/Article

Tiled Rendering

AKer 2016. 10. 21. 08:39
반응형

개요

사실 SW Render Technique라기 보다는 GPU Render Technique
  • 화면 공간을 여러 Tile(or Grid)로 나누어 렌더링 하는 방식
  • Tile-based Rendering(=TBR), Sort-middle Architecture라고도 불린다.
    • 중간에 어떤 Tile에 어떤 Geometry가 그려질지 결정하기 때문
    • 기존의 Immediate Rendering(=IM)은 Sort-Last
  • 이렇게 나누면 동일한 (빈 공간이나 동일한 배경) 타일을 활용할 수도 있고 HW의 성능이 떨어질 경우 적은 리소스만 가지고도 렌더링이 가능하다.

순서

  • Rendering 하기 전에 Geometry가 어느 Tile에 그려질지 결정해야 한다.
    • Modern GPU에서는 CPU가 아닌 GPU에서 수행 가능
    • 보통 Tile은 16x16이나 32x32 크기
  • 각 Tile은 자신이 그릴 Geometry 리스트를 메모리에 가지고 있어야 한다.
  • Geometry 리스트는 Front-to-Back 순서로 정렬해 놓는다.
  • On-chip Buffer라고 불리는 작은 메모리에 각 Tile을 렌더링한다.
    • Large On-chip Buffer도 있는데 이는 Immediate Rendering과 Tiled Rendering의 경계
    • 이 작업은 병렬로 처리할 수 있다.
  • 이후 최종 Pixel을 그리기 위해 Tile 렌더링 결과물을 외부 메모리에 옮긴다.

사용한 Console, Embedded

아래 예들을 보면 알겠지만 상당히 오래된 개념이다. 초창기 Graphics에서는 대부분 Tile-based Architecture를 채택하였는데 추후 External Memory가 속도, 용량면에서 모두 발전하면서 Immediate Rendering으로 대체되었다고 한다. 그런데 최근에 Mobile때문에 다시 연구/활용되는 듯.

Tile-based Immediate Rendering (=TBIM)
  • Dreamcast
  • PS Vita
  • NVIDIA Maxwell
  • ARM Mali
  • Qualcomm Adreno
Large On-chip Buffer
  • XBOX 360
  • XBOX One
Tile-based Deferred Rendering (=TBDR)
  • PowerVR 5/6/7
  • VideoCore IV


참고

https://en.wikipedia.org/wiki/Tiled_rendering

http://www.realworldtech.com/tile-based-rasterization-nvidia-gpus/

http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/gdc2008_ribble_maurice_TileBasedGpus.pdf


반응형

'Game Dev > Article' 카테고리의 다른 글

Forward+ Rendering  (1) 2016.10.19
Premultiplied alpha  (0) 2016.10.14
Inferred Lighting  (0) 2016.10.13
Light Pre-Pass Renderering (=Deferred Lighting)  (0) 2016.10.09