Direct3D (Managed DirectX) Oldal létrehozásának dátuma : 2020. szeptember 16., szerda Az éppen megtekintett oldal nem támogatja a kijelölt megjelenítési nyelvet. × Direct3D を使用するための基本設定 Direct3D を使用するための基本設定とプログラムの基本コードの説明をしています。ここではまだ Direct3D らしい処理はしていません。 2020. szeptember 16., szerda Direct3D の初期化と基本処理 Direct3D の初期化とそれに関係する基本処理の説明を行っています。これが今後のTips の基礎部分になります。 2020. szeptember 16., szerda 文字の表示 本来はポリゴンの作成などからはじめるのが普通なのですが、情報を知るのに文字が表示されたほうが都合がいいので、Direct3D 上で文字を表示させたいと思います。 2020. szeptember 16., szerda 2Dポリゴンの表示 Direct3D なので3Dをやるべきなのですが、ちょっと説明することが多くなってしまうので、最初は認識しやすい2Dポリゴンを使って説明します。 2020. szeptember 16., szerda 頂点バッファを使用した2Dポリゴン 表示される内容は前回とほとんど同じですが、今回はポリゴンを表示するのに頂点バッファというものを使用しています。 2020. szeptember 16., szerda 3Dポリゴンの描画 いよいよ3D上でポリゴンを描画します。見た目は前回と似ていますが、きちんと3D空間上にポリゴンを配置しています。 2020. szeptember 16., szerda 四角形ポリゴンの描画 今まで三角形のポリゴンをひとつだけ描画してきましたが、今回は四角形のポリゴンを描画してみます。実は四角形ポリゴンはかなり利用頻度が高いので作れるようにしておくと便利です。 2020. szeptember 16., szerda テクスチャーの貼り付け ゲームなどではこのテクスチャーは必ずといっていいほど使用されますし、よりリアルなモデルとして見せるために有効に活用されます。 2020. szeptember 16., szerda キーボードからの入力 ゲームなどではキーボードなどを使ってユーザーが何らかの入力を行うはずです。今回はキーボードの入力を受けられるようにしたいと思います。 2020. szeptember 16., szerda カメラの操作 キー入力が出来るようになったので、キーボードでカメラを操作してみたいと思います。カメラは原点を中心に回転するようになっています。 2020. szeptember 16., szerda マウスからの入力 せっかくキーボードの入力が出来るようになったので、今度はマウスでカメラを操作したいと思います。マウスの左ボタンを押しながら上下左右に移動させるとカメラが回転します。 2020. szeptember 16., szerda インデックスバッファを使用したボックスの描画 効率よく頂点データを作成するために「インデックスバッファ」というものを使用してみたいと思います。 2020. szeptember 16., szerda ライトで陰を付ける 今まで頂点の色のみで色をつけていましたが、今回は「ライト」を使用してポリゴンに陰をつけてみました。ライトは時間によって移動するようにしたので、それに沿って陰も変化します。 2020. szeptember 16., szerda Xファイルからモデルデータ読み込み 「Xファイル」を読み込むことによって、簡単に複雑な形状のモデルを表示させることができるようになります。 2020. szeptember 16., szerda XYZ軸のライン描画 原点(0.0, 0.0, 0,0)からそれぞれ「X」「Y」「Z」方向へ線を描画して軸を表示するようにします。こうすることで位置の感覚がわかりやすくなると思います。 2020. szeptember 16., szerda モデルの移動 今回はモデルを移動させます。ゲームとかでもキャラクターが移動できなかったら話になりません。キーボードの「↑↓←→」で XZ 方向にモデルが移動します。 2020. szeptember 16., szerda モデルの回転 前回は「移動」を行いましたが、向きが変わっていませんでした。もちろん移動する方向によって向きが変わらないとおかしいので、今回はモデルを回転させることにします。 2020. szeptember 16., szerda モデルの拡大縮小 今回はモデルを各XZ方向に拡大してみたいと思います。これを使えば爆発などのエフェクトシーンなどに柔軟に対応することができます。 2020. szeptember 16., szerda 移動、回転、拡大縮小の掛け合わせ 前回までは「移動」「回転」「拡大縮小」をそれぞれ個別に処理していました。今回はそれらを同時に行えるようにマトリックスを掛け合わせて計算させてみます。 2020. szeptember 16., szerda フルスクリーン表示 市販PCゲームでよく見られる全画面表示を行います。臨場感あふれるゲームにするためにはとても効果的です。 2020. szeptember 16., szerda SDK の標準メッシュを作成 今までオリジナルのモデルデータを使用していましたが、データがかさばるので、SDKの「Mesh」クラスで簡単に作成できるメッシュを使用してみることにします。 2020. szeptember 16., szerda スプライトによるスクリーンへの画像描画 ゲームなどでパラメータやキャラクターの顔などの画像がスクリーンの特定の位置に張り付いているのを見かけると思います。これを「スプライト」というものを使用してそれを実現しています。 2020. szeptember 16., szerda 頂点データによる半透明処理 ポリゴンを頂点データの色指定によって半透明で表示されています。きちんと後が透けていることが分かると思います。 2020. szeptember 16., szerda マテリアルによる半透明処理 マテリアルを使用した半透明処理を行います。今回は簡単な距離判定を行い、反対側から見ても問題なく透けて見えるようにしています。 2020. szeptember 16., szerda クォータニオンによる回転 クォータニオン(Quaternion)」を使用することにより、回転を合成できたり、ジンバルロックの回避、球面補間など応用すればとても使いやすいものだと実感できると思います。 2020. szeptember 16., szerda デバイスの消失 デバイスが使えなくなってしまう状況になっても正常に状態を保てるように、デバイスの状態を確認するプログラムを組み込んでみます。 2020. szeptember 16., szerda 様々な 2D ラインの描画 スクリーン座標(2D)でラインを表示させるようにしています。 2020. szeptember 16., szerda ポイントスプライト ポイントスプライトを使用すると非常に綺麗なエフェクトを表現することが出来ます。今回は上空から雪が舞い落ちてくるような神秘的なエフェクトを実現してみました。 2020. szeptember 16., szerda 頂点フォーマットの変更と頂点データの設定 メッシュは作成した後でも、頂点フォーマットの変更や頂点データの設定、取得を行うことが出来ます。今回は、「位置」「法線」しか持たないメッシュに「ディフューズ色」を追加して、各頂点に色を設定していきます。 2020. szeptember 16., szerda 球と球の衝突判定 3Dゲームでよく使われる衝突判定のひとつです。計算がとても単純で非常に高速に処理できます。モデルの形状が球に近いほど正確な判定が行えます。 2020. szeptember 16., szerda ボックスとボックスの衝突判定 衝突判定の中では比較的高速な判定が出来る方法です。回転しない箱型物体、例えばキャラクター以外の家とか置物とかにとても有効です。 2020. szeptember 16., szerda モデルの二階層構造 ロボットなどのようにいくつかのパーツに分かれているようなモデルは、手や足などのパーツが親の動きに従って一緒に動作しています。また、手や足などは単独で回転したりします。これは「親子関係」という構造化を実現することにより可能になります。 2020. szeptember 16., szerda モデルの三階層構造 前回は「モデルの二階層構造」について説明しましたが、今回は「三階層構造」について説明します。 2020. szeptember 16., szerda
Direct3D を使用するための基本設定 Direct3D を使用するための基本設定とプログラムの基本コードの説明をしています。ここではまだ Direct3D らしい処理はしていません。 2020. szeptember 16., szerda
Direct3D の初期化と基本処理 Direct3D の初期化とそれに関係する基本処理の説明を行っています。これが今後のTips の基礎部分になります。 2020. szeptember 16., szerda
文字の表示 本来はポリゴンの作成などからはじめるのが普通なのですが、情報を知るのに文字が表示されたほうが都合がいいので、Direct3D 上で文字を表示させたいと思います。 2020. szeptember 16., szerda
2Dポリゴンの表示 Direct3D なので3Dをやるべきなのですが、ちょっと説明することが多くなってしまうので、最初は認識しやすい2Dポリゴンを使って説明します。 2020. szeptember 16., szerda
頂点バッファを使用した2Dポリゴン 表示される内容は前回とほとんど同じですが、今回はポリゴンを表示するのに頂点バッファというものを使用しています。 2020. szeptember 16., szerda
四角形ポリゴンの描画 今まで三角形のポリゴンをひとつだけ描画してきましたが、今回は四角形のポリゴンを描画してみます。実は四角形ポリゴンはかなり利用頻度が高いので作れるようにしておくと便利です。 2020. szeptember 16., szerda
テクスチャーの貼り付け ゲームなどではこのテクスチャーは必ずといっていいほど使用されますし、よりリアルなモデルとして見せるために有効に活用されます。 2020. szeptember 16., szerda
キーボードからの入力 ゲームなどではキーボードなどを使ってユーザーが何らかの入力を行うはずです。今回はキーボードの入力を受けられるようにしたいと思います。 2020. szeptember 16., szerda
マウスからの入力 せっかくキーボードの入力が出来るようになったので、今度はマウスでカメラを操作したいと思います。マウスの左ボタンを押しながら上下左右に移動させるとカメラが回転します。 2020. szeptember 16., szerda
ライトで陰を付ける 今まで頂点の色のみで色をつけていましたが、今回は「ライト」を使用してポリゴンに陰をつけてみました。ライトは時間によって移動するようにしたので、それに沿って陰も変化します。 2020. szeptember 16., szerda
XYZ軸のライン描画 原点(0.0, 0.0, 0,0)からそれぞれ「X」「Y」「Z」方向へ線を描画して軸を表示するようにします。こうすることで位置の感覚がわかりやすくなると思います。 2020. szeptember 16., szerda
モデルの移動 今回はモデルを移動させます。ゲームとかでもキャラクターが移動できなかったら話になりません。キーボードの「↑↓←→」で XZ 方向にモデルが移動します。 2020. szeptember 16., szerda
モデルの回転 前回は「移動」を行いましたが、向きが変わっていませんでした。もちろん移動する方向によって向きが変わらないとおかしいので、今回はモデルを回転させることにします。 2020. szeptember 16., szerda
モデルの拡大縮小 今回はモデルを各XZ方向に拡大してみたいと思います。これを使えば爆発などのエフェクトシーンなどに柔軟に対応することができます。 2020. szeptember 16., szerda
移動、回転、拡大縮小の掛け合わせ 前回までは「移動」「回転」「拡大縮小」をそれぞれ個別に処理していました。今回はそれらを同時に行えるようにマトリックスを掛け合わせて計算させてみます。 2020. szeptember 16., szerda
SDK の標準メッシュを作成 今までオリジナルのモデルデータを使用していましたが、データがかさばるので、SDKの「Mesh」クラスで簡単に作成できるメッシュを使用してみることにします。 2020. szeptember 16., szerda
スプライトによるスクリーンへの画像描画 ゲームなどでパラメータやキャラクターの顔などの画像がスクリーンの特定の位置に張り付いているのを見かけると思います。これを「スプライト」というものを使用してそれを実現しています。 2020. szeptember 16., szerda
マテリアルによる半透明処理 マテリアルを使用した半透明処理を行います。今回は簡単な距離判定を行い、反対側から見ても問題なく透けて見えるようにしています。 2020. szeptember 16., szerda
クォータニオンによる回転 クォータニオン(Quaternion)」を使用することにより、回転を合成できたり、ジンバルロックの回避、球面補間など応用すればとても使いやすいものだと実感できると思います。 2020. szeptember 16., szerda
ポイントスプライト ポイントスプライトを使用すると非常に綺麗なエフェクトを表現することが出来ます。今回は上空から雪が舞い落ちてくるような神秘的なエフェクトを実現してみました。 2020. szeptember 16., szerda
頂点フォーマットの変更と頂点データの設定 メッシュは作成した後でも、頂点フォーマットの変更や頂点データの設定、取得を行うことが出来ます。今回は、「位置」「法線」しか持たないメッシュに「ディフューズ色」を追加して、各頂点に色を設定していきます。 2020. szeptember 16., szerda
球と球の衝突判定 3Dゲームでよく使われる衝突判定のひとつです。計算がとても単純で非常に高速に処理できます。モデルの形状が球に近いほど正確な判定が行えます。 2020. szeptember 16., szerda
ボックスとボックスの衝突判定 衝突判定の中では比較的高速な判定が出来る方法です。回転しない箱型物体、例えばキャラクター以外の家とか置物とかにとても有効です。 2020. szeptember 16., szerda
モデルの二階層構造 ロボットなどのようにいくつかのパーツに分かれているようなモデルは、手や足などのパーツが親の動きに従って一緒に動作しています。また、手や足などは単独で回転したりします。これは「親子関係」という構造化を実現することにより可能になります。 2020. szeptember 16., szerda