Beginning 3D Game Programming (2)

Beginning 3D Game Programming

Beginning 3D Game Programming


先日 Beginning 3D Game Programming (id:NyaRuRu:20041226#p1) が届いたのでざっと読んでみました.
付属のサンプルゲームのソースコードを追う形で,3D ゲームを作るための環境設定,描画,入力,サウンド,通信といった一通りの流れについて説明するという流れになっています.また,プログラマブルシェーダや HLSL,テクスチャレンダリング,アプリケーション構成ファイルなどについても触れられています.とは言っても内容はあくまで初学者向けということになっています.掘り下げた内容についてはより専門性の高い書籍や資料に求めた方が良いでしょう.
なおサンプルゲームですが,ソースコードのみの提供なので実行するには各自コンパイルする必要があります.また X ファイルのロードに関して Microsoft.DirectX.Direct3DX はバージョン 1.0.2902.0 用に書かれています.Microsoft DirectX 9.0 SDK Update (December 2004) 付属のバージョン 1.0.2903.0 を使用するとランタイムエラーが発生しますのでご注意を.
Tankers サンプルですが,Debug Runtime で実行していてバグに気付きました.Tankers サンプルの gameEngine.cs は以下のように修正しておくと良いでしょう.

// Then minify
if (caps.TextureFilterCaps.SupportsMinifyAnisotropic)
{
    e.Device.SamplerState[0].MinFilter = TextureFilter.Anisotropic;
}
else if (caps.TextureFilterCaps.SupportsMinifyLinear)
{
    e.Device.SamplerState[0].MinFilter = TextureFilter.Linear;
}

// Then minify
if (caps.TextureFilterCaps.SupportsMinifyAnisotropic)
{
    e.Device.SamplerState[0].MagFilter = TextureFilter.Anisotropic;
}
else if (caps.TextureFilterCaps.SupportsMinifyLinear)
{
    e.Device.SamplerState[0].MagFilter = TextureFilter.Linear;
}