タイルベースレンダリングとは
タイルベースレンダリングとは?
スマートフォンやタブレットで採用されているレンダリング手法で、GPU画面を複数のタイルに分割して、描画します。メモリの容量を節約し、描画速度を上げてくれます。
PowerVR - embedded graphics processors powering iconic products より引用
タイルベースレンダリング仕組み
タイルベースレンダリングでは、まずシーン内の全てのジオメトリの計算が終了したとき、各タイルごとに描画するポリゴンの情報(ポリゴンリスト)を作成します。
その後、ラスタライズで、各タイルごとにポリゴンリストから描画するポリゴンをレンダリングします。
タイルベースレンダリングの利点
GPU専用では大きなメモリを積むことができません。その為、CPUとメモリを共有していますが、このメモリとGPUをつなぐバスが多くの場合、非常に細いという特徴があります。
※バスとはデータをやり取りするための信号線の束です。バス幅が細いということは1クロックでやりとりできるデータ量が少ないということです。
モバイルGPUは、細いバスで繋がったRAMから、頻繁にデータを読み書きしないで済むように、太いバスで繋がったSRAMを内蔵しています。ただし、SRAMの容量はとても小さいです。
一般的なレンダリング手法で描画で使用する画面サイズ分のカラーバッファ、深度バッファ、ステンシルバッファなどを必要するため、SRAMは使用できません。細いバスで繋がったRAMに置かれてしまいます。
タイルベースレンダリングでは、1つのタイルをレンダリングするのに必要なデータだけをSRAMに持っていき、計算を行います。これにより計算の途中で細いバスにデータを流さずにレンダリングすることができるので、高速ですし、メモリも節約することができます。
タイルベースはPowerVR、Adreno、Maliなどで採用されているそうです。