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 GPUWindows 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

XNA Game Studio 4.0では、Color型のバイト順をBGRAからRGBAへ変更

 Color型を使わずに直接アクセスしているコードをXNA GS 4.0に移行する場合には、赤と青を入れ替える必要があります。

追加情報(コメント上のQ&A)

  • Q. シェーダモデル1.1は消えた?
    • A. シェーダモデル2.0以上必須
  • Q. グラフィックスのCapsを調べるAPIは残っている?
    • A. ありません。「ReachまたはHiDefがサポートされているか」「どのバックバッファ形式がサポートされているか」を問い合わせる新APIだけです。
  • Q. Luminance8の代わりになるものは?
    • A. Alpha8です。