DirectX9必携

タイトル DirectX9必携

概要 Direct3D9,DirectSound8,DirectMusic,DirectInput8,DirectSetupの使用方法を膨大なサンプルにより解説。

価格 5200円+税 オンラインショップへ

本書籍付属データ(ソースコードその他)のダウンロードはこちらです

概要

DirectX9を使う人にはマストの本です。

DirectX9の各コンポーネントを有益なサンプルを交えて解説する技術書です。
「DirectX」ですので、Direct3Dだけではなく、DirectSound、DirectInput、DirectSetupを解説しています。
DirectSoundはXAudio2の元になっているコンポーネントですので、波形原理から解説している本書の意義は現在でもあります。というよりも今だからこそ価値があります。同様に、DirectInputはXInputに通じます。ゲームを配布する際にはDirectSetupの知識も必要です。

電子書籍です。

本書はPDFというデジタルファイルになります。本書の閲覧はパソコン、ノートパソコンはもちろん、タブレット端末、電子書籍リーダー(カラーPDFが閲覧可能なもの)、その他カラーPDF電子書籍が閲覧可能なデバイスで可能です。

ご決済時に入力されたメールアドレス宛てに、決済後12時間以内にダウンロード先のURLを記入したメールを送信いたします。メール受信後そのURLに行き、電子書籍(PDFファイル)をダウンロードしてください。

電子書籍についてはこちらをご覧ください。

添付プロジェクトムービー

DirectX9必携の付属サンプルプロジェクトを実行したムービーです。
ムービーとしてここに掲載していないサンプルもあります。

02 Direct3D超基本

02 Direct3D超基本

004 Direct3D初期化まで

03 シェーダー超基本

005-1 最小シェーダー

005-2 ディフューズの反映

005-3 陰影くらいは付けたい

005-4 テクスチャを貼りたい

04 Direct3D

1 オブジェクトのレンダリング

006 ポイントのレンダリング

006_2 ポイントのレンダリング 2D

008 ポイントスプライト 3D

009 ポイントスプライト 2D

009_2 ポイントスプライト 2D 頂点にサイズ

010 ポイントスプライトのサイズ変更 3D

011 ポイントスプライトのサイズ変更 2D

011_2 ポイントスプライトのサイズ変更 2D 頂点にサイズ

012 パーティクルらしく

013 ラインのレンダリング

014 ポリゴンのレンダリング

016 スプライトをレンダリング ID3DXSprite

016_2 スプライトをレンダリングする Textured Quads

017 スプライトの抜け色を抜く ID3DXSprite

017_2 スプライトの抜け色を抜く Textured Quads

018 スプライトを重ねる ID3DXSprite

018_2 スプライトを重ねる Textured Quads

019 ビルボードのレンダリング

019_2 ビルボードの仕組み可視化

020 スフィア(球)のレンダリング

021 ボックス(立方体)のレンダリング

022 シリンダー(円柱)のレンダリング

023 トーラス(ドーナツ形)のレンダリング

024 ティーポット(きゅうす)のレンダリング

025 3Dフォントのレンダリング

027 Xファイルメッシュのレンダリング

028 複数のXファイルメッシュをレンダリングする

029 プログレッシブメッシュをレンダリングする

034 アニメーションメッシュをレンダリングする

036 アニメ 時間指定によりモーション切り替え

037 アニメ トラック指定によりモーション切り替え

040 スキンメッシュのレンダリング

042 スキンメッシュ 時間指定でモーション切り替え

043 スキンメッシュ トラックでモーション切り替え

044 情報用文字のレンダリング

046 もじもじ君を使う

2 オブジェクトの質感

047 色を付ける

048 プラスチックのような質感

049 ゴムのような質感

050 金属のような質感

051 テクスチャを貼る

052 テクスチャのメモリ的サイズ

054 テクスチャの透過部分

058 テクスチャブレンド

059 特殊なテクスチャ座標を生成

060 テクスチャで鏡を作成

061 テクスチャ自体を動かす

062 スプライトのテクスチャを反転

063 プログラマブルシェーダーでテクスチャを貼る

064 マルチテクスチャでメッシュを燃やす

066 プログラマブルシェーダーで燃やす

067 プログラマブルシェーダーで焦がす

068 メッシュの頂点のみレンダリング

069 メッシュのワイヤーフレームをレンダリング

070 フラットシェーディングする

071 グーローシェーディングする

072 フォンシェーディングする

073 トゥーンシェーディング(セル画)する

073_2 トゥーンシェーディング(セル画)する テクスチャ付き

074 グーローシェーディングにより陰影

075 ランバートシェーダーで陰影

076 光沢を付ける

077 フォンシェーダーで光沢

078 アイスシェーダーで霜

079 ノーマルバンプマッピング(ハイトマップ版)

080 ノーマルバンプマッピング(ノーマルマップ版)

081 海水面を作る

082 スフィアマップで擬似的に映り込ませる

082_2 スフィアマップで擬似的に映り込ませる(背景付)

084 キューブマップでリアルに映り込ませる

087 サーフェイスで映り込み

088 奇妙な映りこみ

089 アルファブレンディングする

090 カメラ位置に依存しないアルファブレンディング

091 同じメッシュ内部でのアルファブレンド

092 マテリアルのアルファ成分を反映させる

093 アルファ付きテクスチャの特定領域だけを透過させる

094 透過している裏ポリゴンを自然にする(カリングトリック)

3 オブジェクトの位置・動作・変形

095 平行移動

096 回転

097 スケーリング

098 ビルボード化

099 任意画面位置に固定表示

100 ぺちゃんこ

4 シーン

101 カメラの移動

101_2 カメラの回転

102 物体を注視

103 フォロートラック

104 回り込みトラック

105 クレーン

106 ズームイン・アウト

107 ドリーイン・アウト

108 画面に対して絶対回転

109 画面に対して絶対回転(クォータニオン版)

110 ビルボーディング

111 3人称視点(TPV)

113 ビュー行列の手動作成

114 アンチエイリアシングをかける

115-2 頂点フォグの不具合

115-3 範囲指定フォグ

115-4 密度ベースフォグ

115-5 頂点フォグ

115-6 ピクセルフォグ

115-7 シーン全体をぼかす

116 簡易モーションブラー(高速)

117 距離によるぼかし

118 DOF被写界深度

119 平面投影の影

120 シャドーボリュームの影

121 ポイントライト時のシャドーボリューム

122 シャドーボリューム自体を可視化

123 ダブルステンシルでシャドーボリューム

124 シャドーマップで影

125 シャドーマップで影(ライティング加味)

126 シャドーマップで影(ライティング+テクスチャー加味)

127 深度テクスチャーを可視化

128 アニメーションメッシュに平行投影の影

128_2 スキンメッシュに平行投影の影

129 アニメーションメッシュにシャドーボリューム

130 アニメーションメッシュにシャドーマップ

131 視錐台カリング

5 ダイナミクス

132 バウンディングスフィア

133 アニメーションメッシュのバウンディングスフィア

134 AABB

135 OBB

136 OBBツリー

137 直線と無限遠平面の交差

138 平面方程式を求める

140 直線と有限遠平面の交差

141 直線と平面の交点座標

142 直線(レイ)とメッシュの交差判定

143 直線(レイ)とメッシュの交差判定(完全版)

144 交差しているメッシュ内ポリゴンを得る

145 メッシュ内ポリゴンの平面方程式

146 レイとメッシュ内ポリゴンの交点座標

147 レイとアニメーションメッシュの交差

148 交差しているアニメメッシュ内パーツメッシュ

149 交差しているアニメメッシュ内ポリゴン

150 アニメメッシュ内ポリゴン平面方程式

151 レイとアニメメッシュ交差座標

152 自由落下のみ

153 自由落下、地面でバンド

154 反射

155 ポリゴン単位で反射

156 障害物を滑る

157 坂を登る

158 階段を上る

159 デコボコ地面を歩く

160 動く面上に対しての滑り

161 滑っている方向に回転する

162 かくれんぼ用発見システム

6 レンダリング先、画面

163 モーダルダイアログ全体にレンダリング

164 モーダルダイアログの一部にレンダリング

165 モードレスダイアログ全体にレンダリング

166 モードレスダイアログの一部にレンダリング

167 テクスチャ上にレンダリング

168 1つのビューを分割レンダリング

169 異なるビューを分割レンダリング

170 バックミラー

171 1つのビューを別ウィンドウにレンダリング

172 異なるビューを別ウィンドウにレンダリング

173 フルスクリーンにレンダリング

175 3D空間をマウスクリック

7 各種バッファー、Xファイル

181 ダーティ領域を設定する

184 テクスチャ内のピクセルを変更

188 テクスチャ内のイメージを動かす

197 フルスクリーンのピクセルデータ取得

198 デスクトップのピクセルデータ取得

199 ウィンドウのピクセルデータ取得

201 メッシュ内の頂点数

202 メッシュ内のポリゴン数

203 頂点バッファから頂点情報

204 頂点に接線情報付加

207 ポリゴンの3頂点を取得

208 ポリゴンの頂点法線を取得

209 ポリゴンの面法線を取得

214 属性バッファの内容表示

215 属性テーブルの内容表示

216 属性バッファの活用例

219 隣接性バッファの表示

220 隣接性バッファの活用例

8 その他

228 グラフィックス環境能力調査

05 DirectSound

252 待機再生と即時再生

253 静的バッファ再生

254 パン

255 周波数変更(スピード、テンポ変更)

256 ボリューム変更

258 バックグラウンド再生

264 ストリーミング(メモリ)

265 完全ストリーミング(ファイル)

272 エフェクト再生

274 多重エフェクト

276 コーラス

279 コンプレッサー

282 ディストーション

285 エコー

288 フランジャー

291 ガーグル

294 ウェーブス・リバーブ

297 I3DL2リバーブ

300 パライコ

304 3D再生

305 音源を移動

306 音源を回転

310 リスナーを移動

311 リスナーを回転

316 マルチ→マルチ再生

317 マルチ→モノラル ダウンミックス

318 マルチ→ステレオ ダウンミックス

319 マルチ→指定チャンネル再生

320 モノラル4本→マルチ再生

321 モノラル6本→5

以降、録音関係のサンプルは、その性質上ムービーにはしていません。(サンプルはあります)

06 DirectInput

下記のサンプル全てを一本の実写ムービーにまとめています。

339 コントローラー列挙

342 キーボード入力

343 DInputを使わないでキー検知

345 マウス入力

346 DInputを使用しないでマウス入力

347 ゲームコントローラー入力

361 コンスタントフォース

364 ランプフォース

371 ピリオディックフォース

378 コンディションフォース

379 FFB機器検出

380 FFB機器能力

上記サンプルの実写ムービー

DirectSetup

ムービーはありません。(サンプルはあります)

385 DXバージョン

387 EULAを表示

388 セットアップ付きゲーム

004 Direct3D初期化まで

DirectX逆引き大全の’複製’ではなく’改良’です。

DirectX逆引き大全を購入し損ねた方のために、大全の内容を引継ぎ(ただし、無駄と思われる項目は引き継いでいません)、さらに大全には無い次のTipsを盛り込んだ本を制作しました。
新たなTips… アニメーションメッシュの影、視錐台カリング、衝突処理のサンプル(滑り、転がり、登り..etc)、3Dシーンのマウス選択、オクルージョンクエリ、映りこむ鏡の作成、症例別原因と対策 など。

見易さで定評のある「ノースブレインソースコード」。

サンプルのソースコードは、ノースブレインのポリシーである「見やすく」を実践しています。

大全と同じサンプルも含め、全サンプル、メモリーリークチェック済み。

また、全サンプルについて、メモリーリーク検査を徹底し、リークゼロを実現しています。

多少文字が小さすぎるかもしれません。

文字数60万文字+挿絵を本にすると、700~800ページ程度になります。しかし、本書は400ページ弱に抑えています。 これにより、文字は小さく、ページにまたがったソースコードなどもあります。見易さという点では、前著のほうがいいかもしれません。ただ、本文の見易さよりも内容が重要であると考えています。
まれにページ数が少ないと内容も薄いと思われる方もいらっしゃいますが、そんなことはありません。
どちらかというと薄い内容を隠すため、字間、行間を大きめにとったり、ページの余白を余計にとったりしている本も少なくありません。紙の量を多くして、価格を上げているのかと思ってしまうほどです。読者は”紙を買うのではありません”。内容を買うのです。