画像は書籍の付録についてたサンプルプログラム。
書籍はI・O BOOKSの『DirectX11 3Dプログラミング』
350ページ以上ある本の半分以上、12章(12章はHLSLの解説なので実質11章分)を費やしてやっとこの図形の表示。
たったこれだけを表示するのに1000ステップ近いコードを書く必要がある。
もちろん今日だけで、そこまで読み進めて、コードも自分で書いたわけじゃなく、付録CDロムのサンプルコードに少し手を加えただけ。
ちなみに本はまだ5章までしか読んでない。
本自体は、DirectXのプログラミングに必要なことがしっかり書かれていて、使うAPIや構造体の定義なども詳細に書かれているので、読み物としてだけじゃなくリファレンスとしも使えそうだ。
その分、教科書を読んでいるような退屈さはあるが、しっかり基礎を学びたい人向けの内容だと思う。
個人的にとてもありがたかったのは、サンプルのコードが非常にシンプルに作られていたこと。
凝ったクラス分けなどがなく、ひとつのCPPファイルに処理がフラットに記述されているので、コードを読むことが、DirectXの描画ロジックの解説になっているというところ。
もちろん、独自の外部ライブラリなんてものはない。全てがフルスクラッチ。
ウィンドウの作成ロジックはもちろん、ウィンドウリサイズや、フルスクリーン時の挙動、デバイス消失時の復帰なども同時に学べるのがありがたい。
それにしても、C++の3Dプログラミングってめんどくさいなあ。
JavaのOpenGLも画面にキューブを出すまでけっこう大変だったけど、define定義された型やら構造体やらポインタやらが加わって、体感的にさらに3倍くらいめんどくさくした感じだ。
ゲームエンジンでいいじゃん。とつぶやく俺がいるのであった。