PICA200とは?
株式会社ディジタルメディアプロフェッショナル(DMP)が開発したグラフィックスIPコア。ニンテンドー3DSのGPUに採用された。
IPコアとは回路の設計図(ソフトウェアでいうところのソースコードに相当する)を販売するビジネスモデルである。製品メーカー側からすると、設計図を購入し製品の回路に組み込むことで比較的容易に新しい機能を追加することが可能になり、設計メーカー側からすると設計したチップを自分達で製造する必要がないのでリスクがなく、双方ともにメリットが大きい。
PICA200自体は元々ゲーム機ではなく組み込み機器向けとして設計されており、3DS以外にもカーナビやデジタルカメラやパチンコなどでの採用実績がある。
1分でわかる3DSのグラフィック機能(PICA200)の特性
これまでパソコンや据え置きゲーム機で研究され開発されてきたグラフィックエフェクトプログラムをハードウェア機能として最初から内蔵することで高画質と高速化と省電力にフォーカスしたプロセッサである。
パソコンや据え置きゲーム機にはプログラマブルシェーダー機能と呼ばれる、独特のプログラムによって様々なエフェクトをかける機能が搭載されている。これによって物体の表面の質感や光の反射や影の表現などが行えるようになっている。これは非常に自由度が高くプログラマーの望むとおりの表現を(性能が許す限り)行うことができるようになっているが、その反面効率的とはいえず、据え置き機ならともかくモバイル機器では扱いにくいものとなっている。また、プログラマーの望むとおりの表現が行えるとはいえ、これまでの研究によって効果的なエフェクトプログラムには定番のものがたくさんあり、それらはどのゲームでも同じようなプログラムによって実現されているのが実態である。
そこでPICA200ではそれらの「どのゲームでも同じように使われるエフェクトプログラム」を初めから回路の機能として内蔵している。これによって効率的にエフェクトをかけることができ、モバイル機器でも十分な性能が実現できる。その反面自由度は失われてしまうため、研究によってより素晴らしいエフェクトプログラムが開発されてもそれを利用することは難しい。
なお、PC、PS3、Xbox360、PSVita、WiiU、iPhone、Android、PS4、は自由にプログラム可能なプログラマブルシェーダー機能を搭載しているが、Wiiはこれをまったく搭載していない。つまり、グラフィック機能についてはWiiよりも3DSのほうが高機能であるといえる。ただし、Wiiは(SD解像度としては)ポリゴン処理性能及びテクスチャー処理性能は非常に高く、3DSよりもはるかに大量のデータを処理できるため、3DSのほうが高性能であるとはいえない。
PICA200とは異なる設計思想のモバイルグラフィックプロセッサPowerVR
PICA200の特徴をより理解できるようにPICA200とは正反対の設計思想を持つプロセッサの代表例としてPowerVRを紹介しよう。
PowerVRはPICA200とは異なり、あくまでも据え置きゲーム機と互換性のある形でプログラマブルシェーダー機能を搭載しているモバイルグラフィックプロセッサである。そのため、同じエフェクトを実装した場合の性能や効率面ではPICA200に劣ると思われるが、パソコンや据え置きゲーム機向けのエフェクトプログラムがそのまま使える(実際には性能が大きく異なるので調整は必要だが)という大きな利点がある。そのため利便性が高く、実際にPowerVRは様々な家電製品に組み込まれており、著名な所ではiPhoneやPlayStationVitaにも組み込まれている。ネットブックと呼ばれる低価格パソコンでも利用されているところからも互換性の高さが伺える。また、同じ思想のモバイルプロセッサとして NVIDIA Tegra や ARM Mali などがあり、PowerVRと並んでスマートフォンで広く採用されている。世界的にはこちらの思想の方が主流であり、PICA200のアーチテクチャは独自色の強いタイプであるといえる。(むしろ思想的には様々な独自機能を持っていたPSPのアーチテクチャに近い)
PC、PS3、Xbox360、PSVita、WiiU、iPhone、Android、PS4、などはいずれも同様の思想で設計されたグラフィックプロセッサを搭載しており、PS3やXbox360向けに作れられたエフェクトプログラムを流用することが可能であり、これによってマルチプラットフォーム展開が容易になっている(極端な話、パソコン向けに作れられたゲームであっても、ポリゴンを大幅に削りテクスチャーを軽量化しエフェクトプログラムを簡略化するだけで他のハードでもそれなりに動作させることが出来る)。それによって、PC、PS3、Xbox360、PSVita、WiiU、はマルチプラットフォームのタイトルを開発しやすい。3DSでもそれら向けに作れられたエフェクトプログラムをコンバートするツールなどが用意されているが、互換性が高いわけではなく結局は独自の対応が必要であり、マルチタイトルの開発は行いにくい。ただし、3DS専用タイトルであるならそれらは大した欠点にはならず、むしろエフェクトを効率よく処理できるので大きなメリットになる。
DSの3Dアーチテクチャ
参考までに前世代のDSの3D性能とアーチテクチャについても触れておこう。DSのアーチテクチャは非常にシンプルなもので「GBAx2 + 3D座標計算専用CPU」となっている。
DSにはGBA上位互換のチップが2つ内蔵されており、それぞれが上画面と下画面の処理を担当している。GBAのチップなので2Dの機能しか持っていないのだが、それとは別に3D座標の計算に特化したCPU/内蔵GPUが用意されており、3Dの描画はそちらのCPU/内蔵GPUで計算し、GBA互換チップに3D絵の2D画像としてコピーして表示する、という流れである。一言で言えば2D専用ハードに後から3D機能を付け足したような構造であり、非常に簡易的なものである。
このような一見すると非効率的とも思える構造になっているのは、
- GBAのチップをほぼそのまま使えるため設計が容易になる
- 3D機能のために2D機能を犠牲にすることがない(初代PSは3Dに特化したため2Dはあまり得意でなかったがそういった心配がない。逆にSSは2Dに特化していたため3Dはあまり得意ではなかったが、そのような心配もない)
- 3D機能を内蔵したチップにした場合2画面なので2つの3Dチップが必要になってしまうが、3Dを後付けするなら3Dチップは1つで済む。(その代わり2Dチップが2つ必要になるがGBA上位互換チップなので安く済む)
と言ったあたりが理由ではないだろうか。
開発側から見たメリット・デメリット
良くも悪くも独自仕様であることが長所でもあり短所でもある。
長所としては、組み込み済みのエフェクトについては手軽に高速かつ高クオリティで処理できることが挙げられる。
PS VitaやiPhoneで同じエフェクトを再現することはおそらく可能だが、かなり頑張ってプログラムを作る必要がある。
また、再現できた場合であっても3DSに比べればバッテリー効率が悪くなることはほぼ間違いない。
エフェクトが組み込み済みということは実装も容易であるということであり、中小デペロッパーに優しい仕様であるとも言える。
PS VitaやiPhoneで同じエフェクトを再現することはおそらく可能だが、かなり頑張ってプログラムを作る必要がある。
また、再現できた場合であっても3DSに比べればバッテリー効率が悪くなることはほぼ間違いない。
エフェクトが組み込み済みということは実装も容易であるということであり、中小デペロッパーに優しい仕様であるとも言える。
短所として、ほぼ3DSの独自仕様であり、他のハードのノウハウが生かしにくい点が挙げられる。
プログラマブルシェーダーに対応した機器の3Dグラフィックスハードの基礎仕様はほぼ共通であり、
他のハードのノウハウを活かすことができるし、ある程度なら同じグラフィックプログラムの流用すら可能。
※結果としてPS3とXbox 360にはマルチタイトルが多い。
また、上記の通りエフェクトをハードウェア(固定)機能として実装しているので、自由度が低くなるという欠点もある。
プログラマブルシェーダーに対応した機器の3Dグラフィックスハードの基礎仕様はほぼ共通であり、
他のハードのノウハウを活かすことができるし、ある程度なら同じグラフィックプログラムの流用すら可能。
※結果としてPS3とXbox 360にはマルチタイトルが多い。
また、上記の通りエフェクトをハードウェア(固定)機能として実装しているので、自由度が低くなるという欠点もある。
それに対して、3DSは同世代機の中では独自仕様が強いハードであるため、他のハードのノウハウが生かしにくい。グラフィックプログラムの流用もできない。
極端な話、PC, PS3, Xbox 360, Wii U, PS Vitaは全部同じグラフィックプログラムの流用でもそこそこのクオリティのゲームが作れてしまうのに、
3DSだけは特別に対応をしなければならないためマルチ志向のデペロッパーにとっては面倒なハードであるとも言える。
極端な話、PC, PS3, Xbox 360, Wii U, PS Vitaは全部同じグラフィックプログラムの流用でもそこそこのクオリティのゲームが作れてしまうのに、
3DSだけは特別に対応をしなければならないためマルチ志向のデペロッパーにとっては面倒なハードであるとも言える。
また、「Unreal Engine 3」などの、海外メーカーが開発に利用するミドルウェアはプログラマブルシェーダに対応した機器向けであることが多いため、
それらのミドルウェアを利用する場合は、PC, PS3, Xbox 360, Wii U, PS Vita向けのゲームしか作れないのである。
※ 「スプリンターセル 3D」では Unreal Engine 2 を独自に3DSに移植して利用している。
それらのミドルウェアを利用する場合は、PC, PS3, Xbox 360, Wii U, PS Vita向けのゲームしか作れないのである。
※ 「スプリンターセル 3D」では Unreal Engine 2 を独自に3DSに移植して利用している。
要約すると、PS3やXbox 360のノウハウを持たないメーカーからは容易にエフェクトを実装できるとして歓迎されるが、
PS3やXbox 360のノウハウを積んでいるメーカーからは3DSのためだけに研究をしたくないという理由で敬遠されるかもしれない。
PS3やXbox 360のノウハウを積んでいるメーカーからは3DSのためだけに研究をしたくないという理由で敬遠されるかもしれない。
ただし、3DSはDSとは違い、3Dグラフィックスの処理系がより一般的なものとなっている(PICA200はOpenGL/ES1.1に対応)。
また、DMPの開発キットではOpenGL2.0ベースのプログラムを書くことでPICA200向けに変換するような機能がある。
また、DMPの開発キットではOpenGL2.0ベースのプログラムを書くことでPICA200向けに変換するような機能がある。
性能
もちろん、このまま使われる訳ではないと思うが。
- フレームバッファ:最大4088×4088ピクセル
- ピクセルフォーマット:RGBA4444, RGB565, RGBA5551, RGBA8888
- 頂点プログラム(ARB_vertex_program)
- テクスチャへの描画
- mipマップ
- バイリニア・テクスチャ・フィルタリング
- アルファブレンディング
- フルシーン・アンチエイリアシング (2×2)
- ポリゴン・オフセット
- 8bitステンシルバッファ
- 24bitデプスバッファ
- シングル/ダブル/トリプル・バッファ
- 頂点性能:最大15.3M polygons/sec (200MHzの場合)
- ピクセル性能:最大800M pixels/sec (200MHzの場合)
DMP MAESTROテクノロジー
- パーピクセル・ライティング
- トゥーン・レンダリング
- プロシージャルテクスチャ
- 屈折マッピング
- サブディビジョンプリミティブ
- シャドウ
- ガスオブジェクト描画
機能概要
いろいろ書いてみたけど、結局下の参考ページの画像見た方が早い気がする。
パーピクセル・ライティング
照明の計算を頂点ごとではなくピクセルごとに行うことで、より正確な照明効果を実現する。
平らな面にも、細かな凹凸があるかのように陰影をつけることができる。
平らな面にも、細かな凹凸があるかのように陰影をつけることができる。
トゥーン・レンダリング
アニメ調の陰影付けを行う。
「ゼルダの伝説 風のタクト」や「ドラゴンクエストVIII」のような表現。
「ゼルダの伝説 風のタクト」や「ドラゴンクエストVIII」のような表現。
プロシージャルテクスチャ
テクスチャ画像を計算により生成する。
要するに、「壁」やら「石」やら「木」等などの表面の模様を、その場で自動生成する。
自然物の他、幾何学模様(レンズフレアや光芒など)も得ることができる。
要するに、「壁」やら「石」やら「木」等などの表面の模様を、その場で自動生成する。
自然物の他、幾何学模様(レンズフレアや光芒など)も得ることができる。
これを使うと、物体の表面の情報を画像として用意する必要が無くなり、
メモリ使用量を劇的に減らせる(256×256×32bitのテクスチャの場合は約1/85)。
メモリ使用量を劇的に減らせる(256×256×32bitのテクスチャの場合は約1/85)。
環境マッピング・屈折マッピング
3次元形状の表面に擬似的な周囲環境の映り込みを再現する手法。
擬似的な鏡面反射や金属光沢、屈折表現ができる(「スーパーマリオギャラクシー」でも使われてたね)。
擬似的な鏡面反射や金属光沢、屈折表現ができる(「スーパーマリオギャラクシー」でも使われてたね)。
サブディビジョンプリミティブ
低ポリゴンモデルを算術的に分割して多ポリゴンモデルにする技術。要するにポリゴン増量。
これによって、少ないメモリでも、なめらかな物体表現をすることができる。増量されるポリゴンの量は最大で16倍。
これによって、少ないメモリでも、なめらかな物体表現をすることができる。増量されるポリゴンの量は最大で16倍。
シャドウ
影。Wiiでは難しいセルフシャドウにも対応(Wiiでは「サイレントヒル シャッタードメモリーズ」など一部のソフトのみ対応)。
ガスオブジェクト描画
実体のない気体をレンダリングする技術。雲、煙、炎などの表現がリアルに出来る。
参考
PICA200 ディジタルメディアプロフェッショナル
テクノロジー ディジタルメディアプロフェッショナル
西川善司の3Dゲームファンのための「PICA200」講座(前編) - GAME Watch
西川善司の3Dゲームファンのための「PICA200」講座(後編) - GAME Watch
4Gamer.net[CEDEC 2012]3DSはまだその実力を100%発揮できていない!? 3DSが搭載するGPUコア「PICA200」の詳細
西川善司のブログ
テクノロジー ディジタルメディアプロフェッショナル
西川善司の3Dゲームファンのための「PICA200」講座(前編) - GAME Watch
西川善司の3Dゲームファンのための「PICA200」講座(後編) - GAME Watch
4Gamer.net[CEDEC 2012]3DSはまだその実力を100%発揮できていない!? 3DSが搭載するGPUコア「PICA200」の詳細
西川善司のブログ