Reach対HiDef / XNA Game Studio 4.0
プロファイルレベル「Reach」と「HiDef」の詳細が明らかになりました。2つのプロファイルだけに単純化され、動作環境の扱いは簡単になりそうです。詳細が判明したので、Windows Phone 7 Seriesなど「Reach」対応ゲームのグラフィックス周りの仕様を検討しやすくなったものと思います。(5つのエフェクトと以下の表)
Reach | HiDef | |
---|---|---|
対応プラットフォーム | Windows Phone 7 Series, Xbox 360, シェーダモデル2.0以上のDirectX 9 GPUのWindows PC | Xbox 360, DirectX10(相当)※1のWindows PC |
シェーダモデル | 2.0(ただし、Windows Phoneではカスタムシェーダをサポートしない) | 3.0+(Xbox 360ではvfetchのようなカスタムシェーダ拡張をサポート) |
最大テクスチャサイズ | 2048 | 4096 |
最大キューブマップサイズ | 512 | 4096 |
最大ボリュームテクスチャサイズ | ボリュームテクスチャをサポートしない | 256 |
2のべき乗でないテクスチャ | 条件: 2のべき乗でないサイズのとき、ラップアドレッシングモード / ミップマップ / DXT圧縮が使えない | ○ |
2のべき乗でないキューブマップ | × | ○ |
2のべき乗でないボリュームテクスチャ | ×(ボリュームテクスチャはサポートされない) | ○ |
Drawメソッド呼び出し毎の最大プリミティブ数 | 65535 | 1048575 |
インデックスバッファ形式 | 16ビット | 16ビット, 32ビット |
頂点要素形式 | Color, Byte4, Single, Vector2, Vector3, Vector4, Short2, Short4, NormalizedShort2, NormalizedShort4 | Reachの形式に加えて、HalfVector2, HalfVector4 |
テクスチャ形式 | Color, Bgr565, Bgra5551, Bgra4444, NormalizedByte2, NormalizedByte4, Dxt1, Dxt3, Dxt5 | Reachの形式に加えて、Alpha8, Rg32, Rgba64, Rgba1010102, Single, Vector2, Vector4, HalfSingle, HalfVector2, HalfVector4(浮動小数点テクスチャ形式はフィルタリングをサポートしない) |
頂点テクスチャ形式 | 頂点テクスチャはサポートされない | Single, Vector2, Vector4, HalfSingle, HalfVector2, HalfVector4 |
レンダーターゲット形式 | ※2 | ※2 |
マルチレンダーターゲット(MRT) | × | 4つまで。同じビット数であること。アルファブレディングと、レンダーターゲット毎に独立した書きこみマスクをサポートする |
オクルージョンクエリ | × | ○ |
分離アルファブレンド | × | ○ |
Blend.SourceAlphaSaturation | SourceBlendに使える(DestinationBlendには使えない) | ○ |
最大頂点ストリーム | 16 | 16 |
最大ストリームストライド | 255 | 255 |
※1 : XNA Game Studio 4.0は、DirectX9のAPIで動きます。「HiDef」は、DirectX9でオプションのいくつかの機能(MRT/浮動小数サーフェース/VTFなど)がサポートされている必要があります。DirectX10 GPUならそれらを満たすので「DirectX10(相当)」と表示しているようです。
※2 : 組み込み代替メカニズムがある。作成時の形式のパラメータは、「format」ではなく「preferredFormat」に変更。
XNA Game Studio 4.0のいずれのプロファイルでもサポートしない頂点要素形式
Rg32, Rgba32, Rgba64, UInt101010, Normalized101010
XNA Game Studio 4.0のいずれのプロファイルでもサポートしないテクスチャ形式
Dxt2, Dxt4, Bgr555, Bgr444, Bgra2338, Bgr233, Bgr24, Bgr32, Bgra1010102, Rgba32, Rgb32, NormalizedShort2, NormalizedShort4, Luminance8, Luminance16, LuminanceAlpha8, LuminanceAlpha16, Palette8, PaletteAlpha16, NormalizedLuminance16, NormalizedLuminance32, NormalizedAlpha1010102, NormalizedByte2Computed, VideoYuYv, VideoUyVy, VideoGrGb, VideoRgBg, Multi2Bgra32