3Dプログラミング基本 1-1

~3Dプログラミングの注意点(2Dプログラミングとの違い等)~

これから3Dプログラミングを始めるにあたって、2Dプログラミングとの違いを確認してみる。

これ以降、このプログラムで表示する3Dオブジェクトについては”モデル”と呼ぶ。

1-1-1.処理の違いについて

1.必ず必要になるもの

●3Dモデルファイル関連処理(directx上での呼び名は主にメッシュファイルやジオメトリファイル、拡張子が.xであることからXファイルと呼ばれることも多い)

●仮想空間内に存在することになるカメラの設定(カメラの位置情報とレンズ情報)

●仮想空間を照らすライトの設定

2.必須ではないがほぼ必要になるもの

●3Dモデル同士の当たり判定

●階層構造やアニメーションを含むXファイルの取扱い

●3D空間中のある地点とスクリーン上の2D座標を変換する方法

3.ゲームを制作する上で必要となるであろうスキル

●マップチップの3Dへの応用法

●半透明処理

●カメラ情報を含めて3Dソフトで動きを制御する方法

4.物理的法則に従った動きの再現

●物理ライブラリ(Physx-フィジックス等)を利用


今回は成果物の完成が目的なため、原則こちらで関数化したものかすでにライブラリとして提供されているものを準備し、その扱い方に

重点を置くブラックボックス的扱いになる。その中身については制作に影響のない範囲で調べるか、制作後に調べてみてほしい。

▲TOP

1-1-2.表示がうまくいかないとき

3Dプログラミングでうまくモデルが表示されない代表的なケースでの対処法をあげておく。


1.Xファイル(モデル情報ファイル)自体がおかしい


DirectXSDK付属のメッシュビューワでどんなメッシュが格納されているか確認する。

以下のリンクからソフトをダウンロードし、Xファイルを開いてみればその内容が確認できる。

URL:



2.Xファイルが極端に小さい


極端に小さいモデルはレンダリングされても点にしかならないため気付かない。

DirectXでの単位1は、他の3Dツールでの単位1に相当することを覚えておくといい。

また3dsMAXやメタセコイヤは好き勝手にモデリングしていると極端に大きいか小さくなっている場合があるので、書き出し時には必ず大きさを確認する必要がある。

3.Xファイルが極端に大きい


Xファイルがカメラを含む程大きい場合、ポリゴンの裏側は通常レンダリングされないために画面には何も映らないという現象になる。

4.レンダリングする位置がカメラの視界内にない


3Dツールでモデルを作る場合は作成時の座標を持ってしまうため、原点(0,0,0)にモデルの中心座標が来るように制作しなければならない。

また、カメラが映している方向にモデルが無ければ表示されない。

5.ライトがないためにオブジェクトが照らされない


ライトが無いときでも黒いシルエットが浮かび上がるはずなので、背景色を黒以外の色にしておけばいい。


■基礎知識:3D空間内の軸について


DirectXの3D空間は、左右をX軸、前後をZ軸、上下をY軸と考える。下の図の矢印が伸びている方向が正方向となる。


他にも基礎知識はあるが、実習を通して少しずつ覚えていって欲しい。


▲TOP

>「1-2 3Dプログラミングに必要なカメラとライトの設定、そしてモデルの表示」へ続く