カウンタ

  ステップアップ (Managed DirectX Direct3D)

ページ更新日:2007/ 6/25

 Direct3D に関する Tips を載せています。プログラミング言語は「C#」で説明していますが、「C#」「VB.NET」「C++/CLI」用のプロジェクトも配布しています。

 ここにある項目は順番に見ていくことによって、Direct3D に関してひとつひとつ確実に覚えていくことが出来ます。

タイトル イメージ
Direct3D を使用するための基本設定 Direct3D を使用するための基本設定
Direct3D を使用するための基本設定とプログラムの基本コードの説明をしています。ここではまだ Direct3D らしい処理はしていません。
Direct3D の初期化と基本処理 Direct3D の初期化と基本処理
Direct3D の初期化とそれに関係する基本処理の説明を行っています。これが今後のTips の基礎部分になります。
文字の表示 文字の表示
本来はポリゴンの作成などからはじめるのが普通なのですが、情報を知るのに文字が表示されたほうが都合がいいので、Direct3D 上で文字を表示させたいと思います。
2Dポリゴンの表示 2Dポリゴンの表示
Direct3D なので3Dをやるべきなのですが、ちょっと説明することが多くなってしまうので、最初は認識しやすい2Dポリゴンを使って説明します。
頂点バッファを使用した2Dポリゴン 頂点バッファを使用した2Dポリゴン
表示される内容は前回とほとんど同じですが、今回はポリゴンを表示するのに頂点バッファというものを使用しています。
3Dポリゴンの描画 3Dポリゴンの描画
いよいよ3D上でポリゴンを描画します。見た目は前回と似ていますが、きちんと3D空間上にポリゴンを配置しています。
四角形ポリゴンの描画 四角形ポリゴンの描画
今まで三角形のポリゴンをひとつだけ描画してきましたが、今回は四角形のポリゴンを描画してみます。実は四角形ポリゴンはかなり利用頻度が高いので作れるようにしておくと便利です。
テクスチャーの貼り付け テクスチャーの貼り付け
ゲームなどではこのテクスチャーは必ずといっていいほど使用されますし、よりリアルなモデルとして見せるために有効に活用されます。
キーボードからの入力 キーボードからの入力
ゲームなどではキーボードなどを使ってユーザーが何らかの入力を行うはずです。今回はキーボードの入力を受けられるようにしたいと思います。
カメラの操作 カメラの操作
キー入力が出来るようになったので、キーボードでカメラを操作してみたいと思います。カメラは原点を中心に回転するようになっています。
マウスからの入力 マウスからの入力
せっかくキーボードの入力が出来るようになったので、今度はマウスでカメラを操作したいと思います。マウスの左ボタンを押しながら上下左右に移動させるとカメラが回転します。
インデックスバッファを使用したボックスの描画 インデックスバッファを使用したボックスの描画
効率よく頂点データを作成するために「インデックスバッファ」というものを使用してみたいと思います。
ライトで陰を付ける ライトで陰を付ける
今まで頂点の色のみで色をつけていましたが、今回は「ライト」を使用してポリゴンに陰をつけてみました。ライトは時間によって移動するようにしたので、それに沿って陰も変化します。
Xファイルからモデルデータ読み込み Xファイルからモデルデータ読み込み
「Xファイル」を読み込むことによって、簡単に複雑な形状のモデルを表示させることができるようになります。
XYZ軸のライン描画 XYZ軸のライン描画
原点(0.0, 0.0, 0,0)からそれぞれ「X」「Y」「Z」方向へ線を描画して軸を表示するようにします。こうすることで位置の感覚がわかりやすくなると思います。
モデルの移動 モデルの移動
今回はモデルを移動させます。ゲームとかでもキャラクターが移動できなかったら話になりません。キーボードの「↑↓←→」で XZ 方向にモデルが移動します。
モデルの回転 モデルの回転
前回は「移動」を行いましたが、向きが変わっていませんでした。もちろん移動する方向によって向きが変わらないとおかしいので、今回はモデルを回転させることにします。
モデルの拡大縮小 モデルの拡大縮小
今回はモデルを各XZ方向に拡大してみたいと思います。これを使えば爆発などのエフェクトシーンなどに柔軟に対応することができます。
移動、回転、拡大縮小の掛け合わせ 移動、回転、拡大縮小の掛け合わせ
前回までは「移動」「回転」「拡大縮小」をそれぞれ個別に処理していました。今回はそれらを同時に行えるようにマトリックスを掛け合わせて計算させてみます。
フルスクリーン表示 フルスクリーン表示
市販PCゲームでよく見られる全画面表示を行います。臨場感あふれるゲームにするためにはとても効果的です。
SDK の標準メッシュを作成 SDK の標準メッシュを作成
今までオリジナルのモデルデータを使用していましたが、データがかさばるので、SDKの「Mesh」クラスで簡単に作成できるメッシュを使用してみることにします。
スプライトによるスクリーンへの画像描画 スプライトによるスクリーンへの画像描画
ゲームなどでパラメータやキャラクターの顔などの画像がスクリーンの特定の位置に張り付いているのを見かけると思います。これを「スプライト」というものを使用してそれを実現しています。
頂点データによる半透明処理 頂点データによる半透明処理
ポリゴンを頂点データの色指定によって半透明で表示されています。きちんと後が透けていることが分かると思います。
マテリアルによる半透明処理 マテリアルによる半透明処理
マテリアルを使用した半透明処理を行います。今回は簡単な距離判定を行い、反対側から見ても問題なく透けて見えるようにしています。
クォータニオンによる回転 クォータニオンによる回転
クォータニオン(Quaternion)」を使用することにより、回転を合成できたり、ジンバルロックの回避、球面補間など応用すればとても使いやすいものだと実感できると思います
デバイスの消失 デバイスの消失
デバイスが使えなくなってしまう状況になっても正常に状態を保てるように、デバイスの状態を確認するプログラムを組み込んでみます。

 そのほかカテゴリ別のページはこちらになります。

広告
Copyright (C) since 2005 Yuichi Onodera (おのでら), All rights reserved.