タイル レンダリングは、光学空間でコンピュータ グラフィックスイメージを規則的なグリッドに分割し、グリッドの各セクション (タイル)を個別にレンダリングするプロセスです。この設計の利点は、フレーム全体を一度に描画する即時モードレンダリング システムと比較して、メモリと帯域幅の量が削減されることです。このため、タイル レンダリング システムは、低電力ハンドヘルド デバイスでの使用に特に一般的です。タイル レンダリングは、グラフィックス パイプラインの最後ではなく途中でジオメトリのソートを実行するため、「ソート ミドル」アーキテクチャと呼ばれることもあります。 [1]
基本的な考え方
表示用の 3D 画像の作成は、一連の手順で構成されます。まず、表示するオブジェクトが個々のモデルからメモリにロードされます。次に、システムは数学関数を適用して、モデルを共通の座標系であるワールド ビューに変換します。このワールド ビューから、特定の視点であるカメラから見た元のモデルに近い一連のポリゴン (通常は三角形) が作成されます。次に、合成システムが三角形をレンダリングし、外側にテクスチャを適用して画像を生成します。テクスチャは、現実感を出すために三角形にペイントされる小さな画像です。結果の画像はさまざまな特殊効果と組み合わされ、フレーム バッファーに移動されます。その後、ビデオ ハードウェアがこれをスキャンして、表示される画像を生成します。この基本的な概念的なレイアウトは、ディスプレイ パイプラインと呼ばれます。
これらの各ステップは、結果の画像を保持するために必要なメモリの量を増加させます。パイプラインの最後に到達するまでに画像は非常に大きくなるため、一般的なグラフィックス カードの設計では、パイプラインのさまざまなサブコンポーネントに画像を出し入れするために必要な帯域幅を提供するために、専用の高速メモリと非常に高速なコンピュータ バスを使用することがよくあります。このようなサポートは専用のグラフィックス カードで可能ですが、電力とサイズの予算が制限されるにつれて、十分な帯域幅を提供することは設計上コストがかかります。
タイル レンダラーは、画像をタイルと呼ばれるセクションに分割し、それぞれを個別にレンダリングすることで、この問題に対処します。これにより、中間ステップで必要なメモリの量と、任意の時点で移動するデータの量が削減されます。これを行うために、システムはジオメトリを構成する三角形を場所によって並べ替え、どの三角形がタイルの境界と重なっているかをすばやく見つけられるようにします。次に、それらの三角形だけをレンダリング パイプラインに読み込み、GPU でさまざまなレンダリング操作を実行し、結果をフレーム バッファーに送信します。非常に小さなタイルを使用できます。16×16 ピクセルと 32×32 ピクセルは一般的なタイルのサイズであり、これにより、内部ステージで必要なメモリの量と帯域幅も小さくなります。また、各タイルは独立しているため、当然、単純な並列化に適しています。
典型的なタイル レンダラーでは、ジオメトリを最初にスクリーン スペースに変換し、スクリーン スペース タイルに割り当てる必要があります。このためには、各タイルのジオメトリのリストを格納するためのストレージが必要です。初期のタイル システムでは、この処理はCPUによって実行されていましたが、最近のハードウェアにはすべて、この手順を高速化するハードウェアが搭載されています。ジオメトリのリストは前後に並べ替えることもできるため、GPU は隠れた面の削除を使用して他のピクセルの背後に隠れているピクセルの処理を回避し、不要なテクスチャ検索のメモリ帯域幅を節約できます。[2]
タイル化アプローチには、主に 2 つの欠点があります。1 つは、いくつかの三角形が複数のタイルと重なる場合、複数回描画される可能性があることです。つまり、合計レンダリング時間は、即時モードのレンダリング システムよりも長くなります。タイルをつなぎ合わせて完全な画像を作成する必要があるときにも問題が発生する可能性がありますが、この問題はずっと前に解決されています[引用が必要]。解決がより難しいのは、一部の画像技法がフレーム全体に適用され、フレーム全体で作業する必要がないことを目的とするタイル化レンダリングではこれを実装するのが難しいことです。これらのトレードオフはよく知られており、利点が役立つシステムでは大きな影響はありません。タイル化レンダリング システムは、ハンドヘルド コンピューティング デバイスで広く使用されています。
タイルレンダリングは、隣接するピクセルをメモリ内でも隣接させるタイル/非線形フレームバッファのアドレス指定方式と混同しないでください。 [3]これらのアドレス指定方式は、タイルレンダラーだけでなく、さまざまなアーキテクチャで使用されています。
初期の作品
タイルレンダリングに関する初期の研究の多くは、Pixel Planes 5アーキテクチャ(1989年)の一部として行われました。[4] [5]
Pixel Planes 5 プロジェクトは、タイル アプローチを検証し、現在タイル レンダラーの標準と見なされている多くの技術を発明しました。このプロジェクトは、この分野の他の論文で最も多く引用されている研究です。
タイル化アプローチは、ソフトウェア レンダリングの歴史の初期から知られていました。Reyesレンダリングの実装では、多くの場合、イメージが「タイル バケット」に分割されます。
商用製品 – デスクトップおよびコンソール
デスクトップ GPU の開発初期には、いくつかの企業がタイル アーキテクチャを開発しました。時間が経つにつれて、これらは主に、高速なカスタム外部メモリ システムを備えた即時モード GPU に取って代わられました。
主な例は次のとおりです。
- PowerVRレンダリング アーキテクチャ (1996):ラスタライザーは32×32 タイルで構成され、ポリゴンは複数のピクセルにわたってイメージ全体に並列にラスタライズされました。初期のPCバージョンでは、タイリングはCPU上で実行されるディスプレイ ドライバーで実行されました。Dreamcastコンソールのアプリケーションでは、タイリングはハードウェアによって実行されました。これにより遅延レンダリングが容易になり、目に見えるピクセルのみがテクスチャ マップされ、シェーディング計算とテクスチャ帯域幅が節約されました。
- Oak Technology (1997) Warp 5。Jon Peddie Associatesの社長Jon Peddieによると、Oakチップは、アンチエイリアシングや三線ミップマップテクスチャなどの他の高性能レンダリングアルゴリズムとタイリングを組み合わせた市場初のチップです。[6]
- マイクロソフト タリスマン(1996)
- ドリームキャスト(PowerVR チップセット搭載) (1998)
- ギガピクセルGP-1(1999)[7]
- Intel Larrabee GPU (2009) (キャンセル)
- PS Vita(PowerVRチップセット搭載)(2011)[8]
- Maxwellアーキテクチャおよびそれ以降のアーキテクチャに基づくNvidia GPU(2014年) [9]
- Vega(GCN5)アーキテクチャおよびそれ以降のアーキテクチャに基づくAMD GPU (2017)[10] [11]
- Intel Gen11 GPU以降のアーキテクチャ(2019)[12] [13] [14]
大規模なオンチップ バッファを使用する非タイル アーキテクチャの例は次のとおりです。
- Xbox 360(2005):GPUには10MBの eDRAMが組み込まれているが 、これは4倍マルチサンプルアンチエイリアシングで1280×720の画像全体のラスターを保持するには不十分であるため、HD解像度で実行し4倍MSAAを有効にするとタイリングソリューションが重ね合わされる。[15]
- Xbox One (2013): GPUには32MBの eSRAMが組み込まれており 、画像の全部または一部を保存するために使用できます。タイル化されたアーキテクチャではありませんが、ソフトウェア開発者がタイル化されたレンダリングをエミュレートできるほど柔軟性があります。[16] [検証失敗]
商用製品 – 組み込み
外部メモリの帯域幅が比較的低く、必要なオンチップ メモリの量も少ないため、タイル レンダリングは組み込み GPU でよく使われるテクノロジです。現在の例は次のとおりです。
タイルベースの即時モードレンダリング (TBIM):
- ARM Mali [どれ? ]シリーズ。[17]
- Qualcomm Adreno(シリーズ300以降では、FlexRenderを介して即時/直接モードレンダリングに動的に切り替えることもできます)。[18] [19] [20]
タイルベースの遅延レンダリング (TBDR):
- アームマリ [どれ? ]シリーズ。[21]
- イマジネーションテクノロジーズ PowerVR 5/6/7シリーズ。[22]
- Broadcom VideoCore IVシリーズ。[23]
- AppleシリコンGPU。[24]
Vivante は、密結合フレーム バッファ メモリ (上記の Xbox 360 GPU に類似) を備えたモバイル GPU を製造しています。これは画面の一部をレンダリングするために使用できますが、レンダリングされる領域のサイズが大きいため、通常はタイルベースのアーキテクチャを使用しているとは説明されません。
参照
参考文献
- ^ Molnar, Steven (1994-04-01). 「並列レンダリングのソート分類」(PDF) . IEEE . 2014-09-12 にオリジナルからアーカイブ(PDF) . 2012-08-24に取得。
- ^ 「PowerVR: グラフィックス技術と最適化のマスタークラス」(PDF)。Imagination Technologies。2012年 1 月 14 日。2013 年 10 月 3 日にオリジナルからアーカイブ(PDF)されました。2014年 1 月 11 日に取得。
- ^ Deucher, Alex (2008-05-16). 「ビデオカードの仕組み」X.Org Foundation。 2010-05-21 にオリジナルからアーカイブ。2010-05-27に取得。
- ^ Mahaney, Jim (1998-06-22). 「History」. Pixel-Planes .ノースカロライナ大学チャペルヒル校. 2008-09-29 時点のオリジナルよりアーカイブ。2008-08-04閲覧。
- ^ Fuchs, Henry (1989-07-01). 「Pixel-planes 5: プロセッサ強化メモリを使用した異機種マルチプロセッサ グラフィックス システム」。第 16 回コンピュータ グラフィックスおよびインタラクティブ技術に関する年次会議 - SIGGRAPH '89 の議事録。ACM。pp . 79–88。doi : 10.1145/ 74333.74341。ISBN 0201504340. S2CID 1778124 . 2012年8月24日閲覧。
- ^ Maclellan, Andrew (1997 年 6 月 23 日)。「Oak が 3D チップ Warp 5 アクセラレータを導入、Talisman のようなレンダリング スキームを採用」。第 1063 号。Electronic Buyers News。
- ^ Smith, Tony (1999-10-06). 「GigaPixel が 3dfx、S3、Nvidia に対抗…タイル」Gigapixel . The Register . 2012-10-03 のオリジナルからアーカイブ。2012-08-24に取得。
- ^ 「Develop 2011: PS Vita はソニーがこれまでに作った中で最も開発者に優しいハードウェア」PS Vita . 3dsforums. 2011-07-21 . 2011-07-21閲覧。[永久リンク切れ ]
- ^ Kanter, David (2016 年 8 月 1 日)。「Nvidia GPU でのタイルベースのラスタライズ」。Real World Technologies。2016年 8 月 4 日時点のオリジナルよりアーカイブ。2016 年4 月 1 日閲覧。
- ^ 「AMD Vega GPUアーキテクチャプレビュー:再設計されたメモリアーキテクチャ」。PC Perspective。2017年1月5日。 2020年1月4日閲覧。
- ^ ライアン・スミス。「AMD Vega GPU アーキテクチャのティーザー: より高い IPC、タイリング、その他、2017 年上半期に登場」。www.anandtech.com。2020年 1 月 4 日閲覧。
- ^ 「Intel プロセッサー グラフィックス Gen11 アーキテクチャー」(PDF) . software.intel.com . 2024 年 8 月 13 日閲覧。
- ^ @intelnews (2019年5月8日). 「Intelの@gregorymbryantが本日...」 (ツイート) – Twitter経由。
- ^ 「驚くほど薄くて軽いデザインで実現するビッグタイムエンターテインメント」(PDF)。2019年5月28日時点のオリジナル(PDF)よりアーカイブ。
- ^ Meyer, Tara (2011 年 9 月 29 日)。「XNA Game Studio 4.0 リフレッシュ」。msdn.microsoft.com。2015年 1 月 7 日時点のオリジナルよりアーカイブ。2014年 5 月 15 日閲覧。
- ^ 「Xbox One 開発者: 今後の SDK の改善により、1080p ゲームがさらに多く登場します」。2023 年 7 月 29 日。
- ^ 「Mali レンダリング戦略」。ARM。2016 年 3 月 4 日時点のオリジナルよりアーカイブ。2018 年 10 月 27 日閲覧。
- ^ 「freedreno グラフィック ドライバーのアップデート」 lwn.net。2015 年 9 月 5 日時点のオリジナルよりアーカイブ。2015年 9 月 15 日閲覧。
- ^ 「Android でのモバイル ゲームの台頭」(PDF)。Qualcomm。5 ページ。2014 年 11 月 9 日時点のオリジナルよりアーカイブ(PDF) 。2015 年9 月 17 日閲覧。
- ^ Klug, Brian; Lal Shimpi, Anand (2011 年 9 月 11 日). 「Samsung Galaxy S 2 (International) レビュー - 最高の製品を再定義」www.anandtech.com . 2020 年 1 月 4 日閲覧。
- ^ 「タイルベースのレンダリング」。Arm 。 2020年7月13日閲覧。
- ^ 「PowerVR グラフィックス アーキテクチャの概要: タイルベースのレンダリング」。Imagination Technologies。2015 年 4 月 5 日時点のオリジナルよりアーカイブ。2015年 9 月 15 日閲覧。
- ^ 「VideoCoreIV-AG100」(PDF) . Broadcom. 2013-09-18. 2015-03-01 にオリジナルからアーカイブ(PDF)されました。2015-01-10に取得。
- ^ 「Metal アプリを Apple Silicon Mac に導入する」。developer.apple.com。2020年 7 月 13 日閲覧。
