[3D]

Direct3Dその1 / 2009-01-03 (土)

矩形
3か月ほど前にチャレンジしたもののうまくいかなかったので放置していたのですが、
年明けパワーにあやかろうとがんばってみました。

いずれは箱庭マップエディタ的なことをやってみたいので、その手始めに地面を配置するところから。
座標を指定して矩形を描画させようとあれこれ調べつつ…

矩形といっても3角形を2つ並べるイメージなのですね。
左手前、左奥、右手前、右奥の順番に頂点を設定して描画すると矩形になりました。
この順番が間違っていたようで、有効な3角形にならずに表示されなかったようです。

m_pD3DDevice->SetTransform (D3DTS_VIEW, &matTmp);
で、カメラがどこにあって、どこを見ているのを設定する。

m_pD3DDevice->SetTransform (D3DTS_PROJECTION, &matTmp);
で、どの範囲を3Dから2Dに変換して画面に見せるかの設定。

m_pD3DDevice->SetTransform (D3DTS_WORLD, &matTmp);
で各オブジェクトを全体のサイズに合わせて拡大・縮小させるわけですね。

このサイズのイメージがわかなかったのですが、空間全体や床の1パーツ等どこか基準となるサイズを用意してあげることで、
それと比較してどのくらいかがわかるわけですね。
2Dは左上が(0,0)で右下が(1023,767)などわかりやすかったので理解するまで時間がかかりました。

次はクリックした時の矩形との当たり判定にチャンジしようと思います。

サンプルコード
[ ツッコミの受付は終了しています ]
この記事のリンク元