マスク処理できたー

 Irrlichtのコードを読みつつDirect3Dの理解を進めている感じ。
 今日、やったのはマスク処理。プログラム的言うとマスク画像となる1枚目のα値を2枚に適用してαブレンド描画するという処理。
 でまぁ、Billboardを使って板ポリ作りつつやったんですが、あれやこれやとSetTextureStageのパラメタ変えたりなんだりしてもできなくて、すげー悩んだ……。結局、オチはUV設定。ステージごとに設定しないといけないんデスネ。IrrlichtのBillBoardは一つしかUVもってない頂点フォーマット(D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE | D3DFVF_TEX1)だったので、2枚目のテクスチャUVがなかったせいだった。なので、とりあえず、1枚目と同じUVを使う(D3DTSS_TEXCOORDINDEX)設定をしてようやく思い描いてたものが出せた。
 それ以前に始め真っ黒で出て来てライトの設定と気づくまでにちょっと時間かかったとか、Direct3D初心者が踏みそうな罠を見事に踏んでいる気がするw

 しかし、思ってたとおり3Dって何もかも比率で扱うから誤差るんだろうなー、と思ってたら見事にそうなる。テクスチャの境界が良くちらつく。これはどうやって回避すれば良いんだろうか……。きもち小さめにクリップするとかすればいいのかねぇ。あと、座標の1メモリ=1ピクセルにするのが一番楽なんだけど、そういう風にするカメラ位置ってどこだろう? とか、悩みがつきない。
 カメラを使いつつ平行投影とかやりたいんだけど、その方法もいまいち不明。平行投影の行列の作り方はわかっているのだけどもー。ふう、早く理解を深めて、ゲームの中身もほぼ決めてレンダラー書きたいぜ。2DゲームだからIrrlichtの機能には無いことガンガンやるつもりだからわりと書かないといけないんだよなぁ。