타일 렌더링
Tiled rendering타일 렌더링이란 광학 공간에서 컴퓨터 그래픽 이미지를 일반 그리드로 분할하여 그리드 또는 타일의 각 섹션을 개별적으로 렌더링하는 프로세스입니다.이 설계의 장점은 프레임 전체를 한 번에 그리는 즉시 모드 렌더링 시스템에 비해 메모리와 대역폭이 줄어든다는 것입니다.이로 인해 타일 렌더링 시스템은 저전력 핸드헬드 디바이스에서 특히 많이 사용되고 있습니다.타일 렌더링은 [1]끝 부분이 아닌 그래픽 파이프라인 중앙에서 지오메트리의 정렬을 수행하기 때문에 "중간 정렬" 아키텍처라고도 합니다.
기본 개념
표시할 3D 영상을 만드는 작업은 일련의 단계로 구성됩니다.우선, 표시하는 오브젝트를 개개의 모델로부터 메모리에 로드한다.그런 다음 이 시스템은 수학적 함수를 적용하여 모델을 공통 좌표계, 즉 세계관으로 변환합니다.이 월드 뷰에서는 카메라의 특정 시점에서 본 원래 모델에 근사한 일련의 폴리곤(일반적으로 삼각형)이 생성됩니다.다음으로, 합성 시스템은, 삼각형을 렌더링 해, 외부에 텍스쳐를 적용함으로써 화상을 생성한다.텍스처는 사실감을 주기 위해 삼각형 위에 그려지는 작은 이미지입니다.생성된 이미지는 다양한 특수 효과와 결합되어 프레임 버퍼로 이동하며, 비디오 하드웨어가 스캔하여 표시되는 이미지를 생성합니다.이 기본 개념 레이아웃을 디스플레이 파이프라인이라고 합니다.
이러한 각 스텝은, 결과 이미지를 보관 유지하는 데 필요한 메모리 용량을 늘립니다.파이프라인의 끝에 도달할 때까지 이미지는 매우 커지기 때문에 일반적인 그래픽 카드 설계에서는 파이프라인의 다양한 서브 컴포넌트를 드나들기 위해 필요한 대역폭을 제공하기 위해 전용 고속 메모리와 매우 빠른 컴퓨터 버스를 사용하는 경우가 많습니다.이러한 종류의 지원은 전용 그래픽 카드에서는 가능하지만, 전력과 사이즈의 버젯이 제한됨에 따라 충분한 대역폭을 설계상 비싸집니다.
타일 렌더러는 이미지를 타일이라고 하는 섹션으로 분할하고 각 섹션을 개별적으로 렌더링하여 이 문제를 해결합니다.이것에 의해, 중간 단계에서 필요한 메모리 용량과 항상 이동하는 데이터의 양이 감소합니다.이를 위해 시스템은 지오메트리를 구성하는 삼각형을 위치별로 정렬하여 타일 경계와 겹치는 삼각형을 빠르게 찾을 수 있습니다.그런 다음 이러한 삼각형만 렌더링 파이프라인에 로드하고 GPU에서 다양한 렌더링 작업을 수행하여 결과를 프레임 버퍼로 보냅니다.매우 작은 타일을 사용할 수 있으며, 16×16 및 32×32 픽셀이 인기 있는 타일 크기이기 때문에 내부 단계에서 필요한 메모리 용량과 대역폭도 작습니다.그리고 각 타일은 독립적이기 때문에 자연스럽게 단순한 병렬화에 적합합니다.
일반적인 타일 렌더러에서는 먼저 지오메트리를 화면 공간으로 변환하고 화면 공간 타일에 할당해야 합니다.이렇게 하려면 각 타일의 지오메트리 목록을 위한 스토리지가 필요합니다.초기 타일형 시스템에서는 CPU에 의해 이 작업이 수행되었지만, 최신 하드웨어에는 이 단계를 가속화하기 위한 하드웨어가 모두 포함되어 있습니다.지오메트리 리스트는 앞뒤로 정렬할 수도 있기 때문에 GPU는 숨겨진 표면 제거를 사용하여 다른 뒤에 숨겨진 픽셀을 처리하지 않기 때문에 불필요한 텍스처 [2]검색에 필요한 메모리 대역폭을 절약할 수 있습니다.
타일 방식에는 두 가지 주요 단점이 있습니다.하나는 여러 개의 타일과 겹칠 경우 일부 삼각형이 여러 번 그려질 수 있다는 것입니다.즉, 총 렌더링 시간이 즉시 모드 렌더링 시스템보다 더 길다는 것을 의미합니다.완전한 이미지를 만들기 위해 타일을 꿰매야 하는 문제도 있지만, 이 문제는 오래 전에[citation needed] 해결되었습니다.보다 해결이 어려운 것은 프레임 전체에 몇 가지 이미지 기법이 적용되어 프레임 전체를 조작할 필요가 없는 경우 타일형 렌더로 구현하기 어렵다는 점입니다.이러한 단점은 잘 알려져 있으며, 이점이 유용한 시스템에는 사소한 영향이 있습니다. 타일 렌더링 시스템은 핸드헬드 컴퓨팅 장치에서 널리 사용되고 있습니다.
타일 렌더링은 인접한 픽셀을 [3]메모리에서 인접하게 만드는 타일 프레임 버퍼 주소 지정 방식 또는 비선형 프레임 버퍼 주소 지정 방식과 혼동하지 마십시오.이러한 어드레싱 스킴은 타일형 렌더러뿐만 아니라 다양한 아키텍처에 의해 사용됩니다.
초기 작업
타일 렌더링에 대한 초기 작업의 대부분은 픽셀 플레인 5 아키텍처(1989)[4][5]의 일부로 수행되었습니다.
Pixel Planes 5 프로젝트는 타일식 접근 방식을 검증하고 현재 타일식 렌더러의 표준으로 여겨지는 많은 기술을 발명했습니다.그것은 그 분야의 다른 신문들이 가장 많이 인용한 작품이다.
타일형 접근법은 소프트웨어 렌더링의 역사 초기에도 알려져 있었습니다.Reyes 렌더링을 구현하면 이미지가 "타일 버킷"으로 분할되는 경우가 많습니다.
시판 제품– 데스크톱 및 콘솔
데스크톱 GPU 개발 초기에 여러 회사가 타일형 아키텍처를 개발했습니다.시간이 지남에 따라 이들은 대부분 고속 커스텀 외장 메모리 시스템을 갖춘 즉시 모드 GPU로 대체되었습니다.
주요 예는 다음과 같습니다.
- PowerVR 렌더링 아키텍처(1996) :래스터라이저는 32×32 타일로 구성되었으며, 폴리곤이 여러 픽셀에 걸쳐 병렬로 이미지 전체에 래스터라이징되었습니다.초기 PC 버전에서는 CPU에서 실행되는 디스플레이 드라이버로 타일링이 실행되었습니다.Dreamcast 콘솔의 어플리케이션에서는 하드웨어에 의해 타일링이 수행되었습니다.이렇게 하면 렌더링 지연이 촉진되어 가시적인 픽셀만 텍스처 매핑되어 음영 계산과 텍스처 대역폭을 절약할 수 있습니다.
- Microsoft Talisman (1996)
- Dreamcast (PowerVR 칩셋 탑재) (1998년)
- 기가픽셀 GP-1(1999년)[6]
- 인텔 Larrabee GPU (2009) (취소)
- PS Vita (PowerVR 칩셋 탑재) (2011년)[7]
- Maxwell 아키텍처 및 이후 아키텍처를 기반으로 한 Nvidia GPU(2014년)[8]
- 베가(GCN5) 아키텍처 및 그 이후의 아키텍처를 기반으로 한 AMD GPU([9][10]2017년)
- 인텔 Gen11 GPU 이후의 아키텍처 (2019)[11][12][13]
대규모 온칩버퍼를 사용하는 비타일 아키텍처의 예를 다음에 나타냅니다.
- Xbox 360 (2005) : GPU에는 10 MB eDRAM이 내장되어 있습니다.4배의 멀티샘플 안티에일리어싱으로 1280×720 이미지 전체를 래스터로 유지하기에 충분하지 않기 때문에 HD 해상도로 실행 시 4배의 MSAA가 활성화되면 [14]타일링 솔루션이 중첩됩니다.
- Xbox One (2013): GPU에는 이미지의 전체 또는 일부를 저장하는 데 사용할 수 있는 내장 32MB eSRAM이 포함되어 있습니다.타일형 아키텍처는 아니지만 소프트웨어 개발자가 타일형 [15][failed verification]렌더링을 에뮬레이트할 수 있을 정도로 유연합니다.
시판 제품 – 임베디드형
비교적 낮은 외장 메모리 대역폭과 필요한 온칩 메모리의 양이 적기 때문에 타일 렌더링은 임베디드 GPU에서 널리 사용되는 테크놀로지입니다.현재의 예는 다음과 같습니다.
타일 기반 즉시 모드 렌더링(TBIM):
- ARM[which?] 말리 [16]시리즈
- Qualcomm Adreno (시리즈 300 이후는 FlexRender [17][18][19]경유로 즉시/다이렉트 모드로 동적으로 전환할 수도 있습니다).
타일 기반 지연 렌더링(TBDR):
- 무장[which?] 말리 시리즈.[20]
- Imagination Technologies PowerVR 5/6/7 [21]시리즈
- Broadcom VideoCore IV [22]시리즈
- Apple 실리콘 [23]GPU
Vivante는 프레임 버퍼 메모리가 긴밀하게 결합된 모바일 GPU를 생산합니다(위에서 설명한 Xbox 360 GPU와 유사).화면의 일부를 렌더링하는 데 사용할 수 있지만 렌더링된 영역의 크기가 크면 일반적으로 타일 기반 아키텍처를 사용하는 것으로 설명되지 않습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Molnar, Steven (1994-04-01). "A Sorting Classification of Parallel Rendering" (PDF). IEEE. Archived (PDF) from the original on 2014-09-12. Retrieved 2012-08-24.
- ^ "PowerVR: A Master Class in Graphics Technology and Optimization" (PDF). Imagination Technologies. 2012-01-14. Archived (PDF) from the original on 2013-10-03. Retrieved 2014-01-11.
- ^ Deucher, Alex (2008-05-16). "How Video Cards Work". X.Org Foundation. Archived from the original on 2010-05-21. Retrieved 2010-05-27.
- ^ Mahaney, Jim (1998-06-22). "History". Pixel-Planes. University of North Carolina at Chapel Hill. Archived from the original on 2008-09-29. Retrieved 2008-08-04.
- ^ Fuchs, Henry (1989-07-01). Pixel-planes 5: a heterogeneous multiprocessor graphics system using processor-enhanced memories. Pixel-Planes. ACM. pp. 79–88. doi:10.1145/74333.74341. ISBN 0201504340. S2CID 1778124. Retrieved 2012-08-24.
- ^ Smith, Tony (1999-10-06). "GigaPixel takes on 3dfx, S3, Nvidia with... tiles". Gigapixel. The Register. Archived from the original on 2012-10-03. Retrieved 2012-08-24.
- ^ mestour, mestour (2011-07-21). "Develop 2011: PS Vita is the most developer friendly hardware Sony has ever made". PS Vita. 3dsforums. Retrieved 2011-07-21.[영구 데드링크]
- ^ Kanter, David (August 1, 2016). "Tile-based Rasterization in Nvidia GPUs". Real World Technologies. Archived from the original on 2016-08-04. Retrieved April 1, 2016.
- ^ "AMD Vega GPU Architecture Preview: Redesigned Memory Architecture". PC Perspective. Retrieved 2020-01-04.
- ^ Smith, Ryan. "The AMD Vega GPU Architecture Teaser: Higher IPC, Tiling, & More, Coming in H1'2017". www.anandtech.com. Retrieved 2020-01-04.
- ^ https://software.intel.com/sites/default/files/managed/db/88/The-Architecture-of-Intel-Processor-Graphics-Gen11_R1new.pdf[베어 URL PDF]
- ^ @intelnews (8 May 2019). "Intel's @gregorymbryant at today's..." (Tweet) – via Twitter.
- ^ https://newsroom.intel.com/wp-content/uploads/sites/11/2019/05/10th-Gen-Intel-Core-Product-Brief.pdf[베어 URL PDF]
- ^ LLC), Tara Meyer (Aquent. "XNA Game Studio 4.0 Refresh". msdn.microsoft.com. Archived from the original on 2015-01-07. Retrieved 2014-05-15.
- ^ "Xbox One developer: upcoming SDK improvements will allow for more 1080p games".
- ^ "Mali rendering strategy". ARM. Archived from the original on 2016-03-04. Retrieved 2018-10-27.
- ^ "An update on the freedreno graphics driver". lwn.net. Archived from the original on 2015-09-05. Retrieved 2015-09-15.
- ^ "The rise of mobile gaming on android" (PDF). Qualcomm. p. 5. Archived (PDF) from the original on 2014-11-09. Retrieved 17 September 2015.
- ^ Simond, Brian Klug, Anand Lal Shimpi, Francois (September 11, 2011). "Samsung Galaxy S 2 (International) Review - The Best, Redefined". www.anandtech.com. Retrieved 2020-01-04.
- ^ "Tile based rendering". Arm. Retrieved 2020-07-13.
- ^ "A look at the PowerVR graphics architecture: Tile-based rendering". Imagination Technologies. Archived from the original on 2015-04-05. Retrieved 2015-09-15.
- ^ "VideoCoreIV-AG100" (PDF). Broadcom. 2013-09-18. Archived (PDF) from the original on 2015-03-01. Retrieved 2015-01-10.
- ^ "Bring your Metal app to Apple Silicon Macs". developer.apple.com. Retrieved 2020-07-13.