「まあ、それほど多くないポリゴンを組みたてて眺められれば良い、と思って気軽にテストプログラムを組み始めたがこれが難物」
「どんな内容?」
「数個のポリゴンがグルグル回れば良いと思った。で、実はVisual Studio 2012でC++のDirect3Dアプリを作成すると何もせずとも最初から実現されている」
「それでいいじゃん」
「ところが、C#で書きたいです、と言った瞬間に泥沼」
「は?」
「Visual Studio 2012にDirextXのC#サポートは一切ない」
「えー。C++はあるのに?」
「そうだ」
「昔はC#で使うライブラリがあったじゃん」
「そうだね。でも今は無い」
「じゃあどうするんだよ」
「SlimDXというライブラリが、目的の機能を持っていると分かった」
「C#でDirect3D使えるわけだね」
「そうだ。しかし、これも上手く行かないことだらけで、途方に暮れてしまった」
「なんで上手く行かないの?」
「つまりね。単なるラッパで、Direct3Dをかなり分かっていないと扱いきれないのだ。かといって、世の中にあるサンプルソースの大多数はC++用でSlimDX用ではない。SlimDX用に手直ししたくても対応関係が分かりにくい。そもそもOSSのお約束通り、サンプルソースもドキュメントも大幅に足りない」
「それで降参したんだね?」
「ははは。まさか」
「まさか……」
「結局、Visual Studio 2012は妥協して、Visual Studio 2010でもいいや、と思った瞬間にXNA4.0が使えるようになり、その上以下の状態までアッという間に行けた」
- プログラム的なポリゴンの制御
- カメラの位置と向きの制御
- ライトの制御
「えー」
「XNA 4.0で行きますと言った瞬間に、ネットにはC#で書いた説明やサンプルソースがあって何も問題は無くなった。いくつかのサンプルソースを利用して、後はカスタマイズして以下のように、ライトが当たって回転する四角を見ることができたよ」
「どこをカスタマイズしたの?」
「カメラの位置とか、数値はこっちで調整した。サンプルソースにカメラの位置データが含まれていなかったので、そこは自分で数値を補って入れてみたよ」
「カメラ位置の設定数値なんて分かるの?」
「分かるよ。アプリとしての3Dソフトはそれなりに使っているから」
「じゃあ、これで君は書きたいものを書き始めることができるわけだね?」
「ははは。まさか。かなり無駄な時間を使ったので仕事に戻るよ」
「ぎゃふん」