ホーム > プログラミング > モデルビューワを作る > 12.「面はすべて同一のマテリアル設定」ではないモデルファイルの読み込み、描画に対応する

12.「面はすべて同一のマテリアル設定」ではないモデルファイルの描画に対応する



11.で作成したモデルビューワは、モデルファイルの面はすべて同一のマテリアル設定としていました。
マテリアル設定が同一である面の集まりに対してグループというデータ構造を用意し、モデルはグループの集まりであるとするデータ構造を用意することで、「面はすべて同一のマテリアル設定」ではないモデルファイルの描画に対応します。
ついでに、頂点法線ベクトルデータ、面法線ベクトルデータも保持するようにモデルデータ構造を変更します。

プロジェクトを開く

11.で作成したモデルビューワプロジェクトを開きます。

モデルに関するデータ構造の変更

マテリアルデータ構造の追加、グループデータ構造の追加、モデルデータ構造の変更等のモデルに関するデータ構造の変更を行ないます。

ModelDataStructure.h の内容を以下のようにします。



ビルドし、エラー、警告がないことを確認します。

ファイル読み込み処理の変更

データ構造の変更にあわせて、ファイル読み込み処理を、変更後のデータ構造に対応したものへ変更します。

LoadStlFile.cpp のLoadStlFile関数の内容を以下のようにします。



ビルドし、エラー、警告がないことを確認します。

描画処理の変更

データ構造の変更にあわせて、描画処理を、変更後のデータ構造に対応したものへ変更します。

ModelViewerRenderer.cpp のRenderObjects関数の内容を以下のようにします。



ビルドし、エラー、警告がないことを確認します。

実行

実行し、動作を確認します。
(11.で作成したモデルビューワと動作上の変化はありません。)

sphere.stlファイルの読み込み
(「メニュー/表示/描画」で、点、線を非描画にしています。)

ダウンロード

実行形式ファイルダウンロード (ModelViewerOpenGLWinAPI2008_12_exe.lzh)

ソースファイルダウンロード (ModelViewerOpenGLWinAPI2008_12_src.lzh)


ご意見、ご感想、ご質問、ご要望等は、「コメントを投稿する」もしくは「ホーム > コンタクト」よりお願いいたします。
内容の誤り、誤字脱字、リンクミスなどの問題点を発見された場合には「コメントを投稿する」もしくは「ホーム > コンタクト」より連絡していただけると幸いです。


Copyright (c) 2005-2016 Nobuki HIRAMINE All rights reserved.