PICA200は、ディジタルメディアプロフェッショナル (DMP) が開発した車載システムや携帯電話、携帯ゲーム機などのモバイル端末向けの3DグラフィックスIPコア (GPU) である。ニンテンドー3DSに搭載される事で特に話題となった。
SIGGRAPH 2006においてFuturemark社との共同で動作デモを公開した[1]。 (実際の動画)
PICA200はワークステーション向けGPUであるULTRAY2000を元にしており、プロセス技術の進展により携帯機器向けのLSIに組み込めるレベルまで小型化されている。
2000年以降、GPUはプログラマブルシェーダーに対応することで柔軟性が飛躍的に増大し、各社はシェーダーコアとしてのGPU性能の向上に努めてきた。この概念は消費電力やチップコストがある程度許容できるPCやワークステーション、あるいは据え置きゲーム機などのGPUとしてはうまく適合したが、組み込み機器向けとしては性能対消費電力の面で効率があまりよくなかった。
この状況へのアンチテーゼとして、プログラマブルシェーダー中でよく使われる定番のテクニックを逆に専用ハードウェアの形で実装することで、シェーダーコアを搭載せずに必要十分なグラフィック処理能力を持たせる事が可能となる。DMP社はこの考えを軸に独自GPUの開発に乗り出した[2]。
OpenGL ES 1.1標準仕様をサポートする。DirectXではバージョン6から7に相当する。これに加え1.1拡張パック (1.1 Extension Pack) のレベルまでハードウェアとして実装され、ソフトウェアから呼び出すことが可能になっている。DMP社はOpenGL ESの仕様を策定するKhronosグループの参加メンバーでもある[1]。
PICA200がサポートするのはMAESTRO-2Gとなっており、OpenGL ES 1.1+1.1拡張パックを超える仕様をも含む。これらの追加機能はDMP拡張API「DMP拡張パック」としてOpenGLのAPIの一部の形でソフトウェアに対して提供される。
PICA200は機能全体としてみると固定機能シェーダーアーキテクチャというよりもコンフィギュラブル・シェーダーアーキテクチャと捉える方が適切である。
エフェクトのプログラミングではPICA200の開発キットに含まれる「ShaderBox」と呼ばれるオーサリングツールを利用すると、OpenGL 2.0ベースのシェーダープログラムを記述することで半自動的にMAESTRO上の部品ロジックの組み合わせに分解し、適切に設定できるようになる。その動作はPICA200エミュレータを用いてPC上で確認することができる[2]。
OpenGL 2.0/OpenGL ES 2.0以降ではシェーダープログラムを主体としたプログラミングモデルとなるが、本コアの場合は独自に設計された固定機能を組み合わせて演算を行う形となる。セルフシャドウを含むシャドウ生成やBRDF(双方向反射率分布関数)を用いた本格的な反射表現、皮膚表現などで多用される表面下散乱といった機能を最初から備えており、簡単に使用できるという[5]。