はじめてのDirectX
今のとこ、OpenGLよりDirectXのがわかりやすい気がしています。
かじったこと
- レンダリング時の3つの変換
- スプライト
- 光源とか
めも
変換
レンダリングの際、3つの変換が以下の順番で実行されるとのこと。
- ワールド変換(位置、回転、拡大縮小
- ビュー変換(カメラ
- プロジェクション変換(視野角とか
簡単なのなら行列の知識とかは別にいらない。たとえば、ワールド変換なら以下の関数で行列を作成してくれる。
位置:D3DXMatrixTranslation
回転:D3DXMatrixRoration
スケール:D3DXMatrixScaling
逆に「行列の知識が必要になるような簡単でないもの」ってどんなのかがとても気になる。
スプライト
D3DXCreateTextureFromFileExとD3DXCreateSpriteで画像ファイルからスプライトオブジェクトを作成して表示できる。
というかpngとかjpgが何も考えずに扱えることに驚愕しました。libpngとか使ってごにょごにょやらなきゃいけないものと覚悟していたんですが。回転とか縮小とか透過とか半透明とかも簡単にできるっぽい。あとどれを手前に表示するかをz軸で指定できるのも驚愕した。いままで作った2Dゲー(試作含む)はz軸じみたものを自前で実装してたですよ。
こんなに楽でいいのか。とか安心していると落とし穴がありそうだけど。
しかし2Dグラフィックを表示するにはこれ以外にも方法がいろいろある模様。上の方法はありなんだろうか。どれがいいのかよくわからん。まだわからないことだらけ。