Irrlicht

 なんかなんでもあるくせー。気になるのはnew/deleteを容赦なくしてるとこだけど、明示的なReferenceCounterで動作してるからタイミング調整はきかせられそうだから、まあ、どうにでもなるかな。何よりコードが綺麗なのでチュートリアルを軸にコードを読み進めやすいのがすごい良い。最終手段Irrlicht改造も苦労はなさそう。
 描画に関してはIrrlichtに完全に乗っかれば、次はやろうと思っていた計算と描画の完全分離ができそうで嬉しい。BMWのシステムだとクラスオブジェクトとしては一緒くたにしてあって、今実行されるのが計算タイミングなのか描画タイミングなのかで実行を切り分けるシステムなんだけど、ある時、そもそも別のことやってるんだから一緒にする必要なくね? と思ったのですよ。上手いこと構成すれば並列化も促進されるし。

 むしろ、問題は俺のDirect3Dなどの3D描画システムに対する知識のなさ。なので並行してDirect3D自体の勉強も始めた。こいつで「DirectX 9 シェーダプログラミングブック」。ちょっと古い本だけど網羅的に書いてあるので良いかなと思ったので。概念的には一通り知ってるんですが、Direct3Dとしての用語とか扱いはほとんど知らない。
 読んでて驚いたのは、αブレンドってシェーダー時代の今はてっきりピクセルシェーダーでやるものとばかり思ってたけど、まだGPU機能レベルだったこと。最新の3.0とか4.0ではできるのかもしれないけれど。あと、思ってた以上にShaderModel2.0が古い規格だったのも驚いた。5年前の規格なら今なら必須としてもそんなにユーザー足切りせずに済む気がしてきた。2.0があるといろんなことが出来るので2.0は使いたいな−、と思っているのですよ。

 今週いっぱいはIrrlichtを勉強して、来週からベスト版の作業に戻り最後の詰めをやる感じで今月は行く。