PC/Mac | iOS/Android | Flash | 360/PS3 | |
遅延ライティング | シェーダモデル3.0,GPU サポート必要 | - | - | 対応 |
フォワード レンダリング | シェーダモデル2.0 | OpenGL ES 2.0 | 対応 | 対応 |
頂点レンダリング | 対応 | 対応 | 対応 | - |
リアルタイム シャドウ | シェーダモデル2.0,GPU サポート必要 | - | Limited (see below) | 対応 |
Image Effects | ほとんどがシェーダモデル2.0必要 | ほとんどがOpenGL ES 2.0必要 | Limited (see below) | 対応 |
頂点シェーダ | シェーダモデル1.1 | OpenGL ES 2.0 | 対応 | 対応 |
ピクセル シェーダ | シェーダモデル2.0 | OpenGL ES 2.0 | 対応 | 対応 |
固定機能シェーダ | 対応 | 対応 | 対応 | - |
リアルタイム シャドウは現在,デスクトップとコンソール プラットフォームで機能します。 デスクトップでは,一般に シェーダ モデル 2.0 対応の GPU が必要です。 Windows (Direct3D) 上でも,GPU は,シャドウマッピング機能をサポートする必要があり,大半の 単体 GPU は,2003 年以降,大半の統合 GPU は,2007 年以降これをサポートしています。技術的には,Direct3D 9 では,GPU は D16/D24X8 または DF16/DF24 テクスチャ形式をサポートする必要があり,OpenGLでは,GL_ARB_depth_texture 拡張機能をサポートする必要があります。
Flashでもリアルタイムシャドウはサポートされますが,デプス バイアスの欠如とシェーダー制限により,セルフシャドウでの画像の乱れ(ライトのシャドウバイアスを増加させる)および,エッジが多少ガタガタになることがあります。
モバイル(iOS/Android)でのシャドウはOpenGL ES 2.0と GL_OES_depth_texture 拡張機能が必要です。特にこの拡張機能はTegraのAndroidでバイスでは__搭載されてない__ことに注意して下さい。このため,シャドウは正しく動作しません。
Image Effects は,Render To Texture(テクスチャをレンダリング) 機能が必要です。これは,一般に2000年以降に作成されたものならば,サポートされています。 しかし,最も簡単な効果を除きすべてが,プログラマブルピクセル シェーダを必要としているため,実用的には,デスクトップでは,シェーダ モデル 2.0 (2003 年以降の単体GPU,2005 年以降の統合 GPU),モバイル プラットフォームでは,OpenGL ES 2.0 が必要です。
Image Effectsの一部はFlashで動作しますが,残りの大部分は,NPOT(2の2乗でない)テクスチャをサポートしないことや,デプス テクスチャのサポートなどの機能がないといったシェーダの制約のため,動作しません。
Unity では,固定機能またはプログラマブルシェーダを記述できます。 固定機能は,コンソール (Xbox 360 と Playstation 3) 以外のどこででもサポートされています。 プログラマブルシェーダのデフォルトはシェーダモデル 2.0 (デスクトップ) および OpenGL ES 2.0 (モバイル) になります。 デスクトップ プラットフォームでは,頂点シェーダに対して,シェーダ モデル 1.1 をターゲットすることが出来ます。