落書きノート

ふと自分が気になった事を書いてます

C/C++ DirectX9 頂点シェーダ 座標系 3Dオブジェクトの表示

さて、今回はオブジェクトの表示をしただけです。サンプルプロジェクトを用意し、ビルドしただけです。DirectX9の座標系は、左手座標系です。その他のOpenGLとかでは右手座標系を使っている場合があるようです。環境によって違うということですね。

頂点データいわゆるFVF(Flexible Vertex Format)を使って、頂点データをまとめた頂点バッファというリスト形式にし、そのデータに基づいてモデルを表示します。

ポリゴンを三角形に分散し、分散したデータの各頂点の情報をリストにして頂点バッファに格納します。

ここで個人的に気になったのは法線です。ここでは法線はポリゴンの面の向きを表すために示すベクトルのことのようです。頂点の座標に加えて、頂点の色を決めるために法線というパラメータが必要になるようです。

三角形の分割方法も幾つかあり、トライアングルリスト、トライアングルストリップ、トライアングルファンというものがあります。他にもありますが、代表的なものはこの3つです。トライアングルリストが最もオーソドックスではありますが、頂点を共有しないため、動作処理が重くなるという欠点があります。これ以外の2つはいずれも頂点を共有して効率よく分割する方法です。

気になったことが書けたので、ここで試したサンプルファイルのスクリーンショットを載せておきます。ソースコードは少々長いので省略します。

directx_chap03_01