PICA200

PICA200は、ディジタルメディアプロフェッショナル (DMP) が開発した車載システムや携帯電話、携帯ゲーム機などのモバイル端末向けの3DグラフィックスIPコア (GPU) である。ニンテンドー3DSに搭載される事で特に話題となった。

SIGGRAPH 2006においてFuturemark社との共同で動作デモを公開した。
(実際の動画)

 概要 
PICA200はワークステーション向けGPUであるULTRAY2000を元にしており、プロセス技術の進展により携帯機器向けのLSIに組み込めるレベルまで小型化されている。

2000年以降、GPUはプログラマブルシェーダーに対応することで柔軟性が飛躍的に増大し、各社はシェーダーコアとしてのGPU性能の向上に努めてきた。この概念は消費電力やチップコストがある程度許容できるPCやワークステーション、あるいは据え置きゲーム機などのGPUとしてはうまく適合したが、組み込み機器向けとしては性能対消費電力の面で効率があまりよくなかった。

この状況へのアンチテーゼとして、プログラマブルシェーダー中でよく使われる定番のテクニックを逆に専用ハードウェアの形で実装することで、シェーダーコアを搭載せずに必要十分なグラフィック処理能力を持たせる事が可能となる。DMP社はこの考えを軸に独自GPUの開発に乗り出した。

 仕様 
  フレームバッファ：最大4088×4088ピクセル
 ピクセルフォーマット：RGBA4444, RGB565, RGBA5551, RGBA8888
 頂点プログラム (ARB_vertex_program)
 テクスチャへの描画
 ミップマップ
 バイリニア・テクスチャフィルタリング
 アルファブレンディング
 フルシーン・アンチエイリアシング (2×2)
 ポリゴン・オフセット
 8bitステンシルバッファ
 24bit Zバッファ
 シングル/ダブル/トリプル・バッファ
 頂点性能：最大15.3M ポリゴン/秒 (200MHzの場合)
 ピクセル性能：最大800M ピクセル/秒 (200MHzの場合)

 DMP MAESTROテクノロジー 
 パーピクセル・ライティング
 ライティングの計算を頂点ごとの法線情報からの線形補間のみによらず、光源ベクトル、視線ベクトル、ピクセルにおける法線ベクトルから反射方程式を解いてそのピクセルの明るさを算出する。これにより頂点単位のライティング結果をただ補間してそのピクセル色とする簡易的なライティングよりもなだらかな陰影や美しいハイライトが出せるようになる。
 トゥーンレンダリング
 明るさを0.0～1.0までの連続した値域の代わりに2段階程度の非連続の値を取ることにより、セル画アニメ風のかっちりした塗り分けを表現する機能。
 プロシージャルテクスチャ
 テクスチャのピクセルデータを自動生成する機能。通常はピクセルシェーダーのプログラムとして実装する部分。
 レンズフレアや光芒のようなよく用いられる幾何学模様的なテクスチャはパラメータを与えるだけで得られる。
 また木目のような細部が複雑かつ不規則でありながら全体としてパターンデータが求められるようなテクスチャを計算で自動生成することができ、テクスチャに要するVRAM容量を大幅に節約できる。
 屈折マッピング
 環境マッピングの一種で光の屈折を計算で算出するための仕組み。不定形の水滴などの透明な物体をリアルに表現できる。
 サブディビジョンプリミティブ
 プリミティブ (ポリゴンの形状) を算術的に補完し、なめらかな形状を自動生成する機能。
 シャドウ
 半影処理をサポートする。影の生成は投影シャドウだけでなく、シャドウマップ、ステンシルシャドウなどのセルフシャドウにも対応している。
 ガスオブジェクト描画
 ソフトパーティクルをサポートし、煙などを自然に描画できる機能。

OpenGL ES 1.1標準仕様をサポートする。DirectXではバージョン6から7に相当する。これに加え1.1拡張パック (1.1 Extension Pack) のレベルまでハードウェアとして実装され、ソフトウェアから呼び出すことが可能になっている。DMP社はOpenGL ESの仕様を策定するKhronosグループの参加メンバーでもある。

PICA200がサポートするのはMAESTRO-2Gとなっており、OpenGL ES 1.1＋1.1拡張パックを超える仕様をも含む。これらの追加機能はDMP拡張API「DMP拡張パック」としてOpenGLのAPIの一部の形でソフトウェアに対して提供される。

PICA200は機能全体としてみると固定機能シェーダーアーキテクチャというよりもコンフィギュラブル・シェーダーアーキテクチャと捉える方が適切である。

エフェクトのプログラミングではPICA200の開発キットに含まれる「ShaderBox」と呼ばれるオーサリングツールを利用すると、OpenGL 2.0ベースのシェーダープログラムを記述することで半自動的にMAESTRO上の部品ロジックの組み合わせに分解し、適切に設定できるようになる。その動作はPICA200エミュレータを用いてPC上で確認することができる。

対応環境

 COLLADA仕様
 OpenGL ES 1.1

OpenGL 2.0/OpenGL ES 2.0以降ではシェーダープログラムを主体としたプログラミングモデルとなるが、本コアの場合は独自に設計された固定機能を組み合わせて演算を行う形となる。セルフシャドウを含むシャドウ生成やBRDF（双方向反射率分布関数）を用いた本格的な反射表現、皮膚表現などで多用される表面下散乱といった機能を最初から備えており、簡単に使用できるという。

 出典 

 関連項目 
 ニンテンドー3DS

 外部リンク 
 ディジタルメディアプロフェッショナル 公式ホームページ

Category:ニンテンドー3DS
Category:3次元映像