差分

ナビゲーションに移動 検索に移動

タイルベースレンダリング

3,338 バイト追加, 2021年7月15日 (木) 02:47
ページの作成:「'''タイルベースレンダリング'''(英語:tiled base rendering)とは、 コンピューター・グラフィックスにおいて、1つの画面を…」
'''タイルベースレンダリング'''([[英語]]:tiled base rendering)とは、 [[コンピューター・グラフィックス]]において、1つの画面を描画生成する際に、1画面を複数のタイルに分割してタイル単位で描画を行う手法である。

古くは「チャンクレンダリング」「分割レンダリング」などとも呼ばれた。
==概要==
タイル方式は大雑把にいえば「[[メモリ]]の容量と帯域を節約する手法」である。

「少ないメモリ」「遅いメモリ」という条件下では 従来方式では[[シェーダー]]が空回りしてハナクソほじってる時間が長くなるが、 タイル方式であれば[[シェーダー]]を遊ばせることなくフル稼働させやすい。なお、「メモリ負荷は下がる」が「シェーダー負荷が上がる」という欠点もある。

20世紀のメモリ容量が数MBだった時代には夢のような技術あり、 「[[ハードウェア]]を安く作れると夢のような手法」だと言われた。

== 採用事例 ==
タイルベースレンダリングは、[[マイクロソフト]]が絶賛し「[[Talisman]]」をぶち上げ、[[NEC]]が「[[PowerVR]]」を製造してしまい、[[セガ]]が[[ドリームキャスト]]に採用された。 一方、[[プレイステーション2]]は「[[力こそパワー]]」であると2560ビットの超高速バスを採用した。

21世紀になるとタイルベースレンダリングは「忘れ去られた技術」になっていたが、[[iPhone]]が採用し復活を果たした。 これは[[スティーブ・ジョブズ]]の厳しい筐体サイズや消費電力への要求に応えるためだと思われる。
<br />
==利点:メモリを節約できる==
一般的なレンダリング手法では描画作業用に画面解像度相当の[[カラーバッファ]]や[[深度バッファ]]や[[ステンシルバッファ]]などを必要とする。 これらは20世紀の[[パソコン]]で主流だった[[VGA]]([[640x480]])でも1MB以上が必要になる。 さらにこれを60fpsで描画しようとするとメモリ帯域が問題になる。

一方、タイルベースレンダリングでは作業用に必要なメモリ容量が「タイルの大きさ」で済む。16x16や32x32という超低解像度を格納する程度のメモリなら超高速な[[SRAM]]でも安い。
[[ファイル:Tiled base rendering 1.png|なし|サムネイル]]


なお、メモリ容量については昨今のバカみたいにメモリを搭載した[[パソコン]]や[[スマホ]]では[[フルHD]]([[1920x1080]])でも数十MB程度なのであまり問題にならない。

一方、メモリ帯域に関しては今でも厳しい。 [[パソコン]]向けの[[ビデオカード]]では「やれ[[GDDR]]だ」「やれ[[HBM]]だ」と力技で解決が試みられているが、 [[スマ]]ホはバカみたいに遅い[[LPDDR]]がいまだに主流なので問題になることが多い。
==欠点:オーバードローが発生する==
「タイルをまたぐ[[ポリゴン]]」を描画する場合はそのタイル数だけ[[シェーダー]]が動くことになる。いわゆる[[オーバードロー]]に近い無駄が発生する。
<br />

案内メニュー