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

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



「面はすべて同一のマテリアル設定」ではないモデルファイルの読み込みに対応します。
12.のファイル読み込み処理は、アスキー形式STLファイル読み込み処理でしたが、新たに、OBJファイル読み込み処理を追加し、読み込むファイルの拡張子により、アスキー形式STLファイル読み込み処理とOBJファイル読み込み処理のどちらかが呼び出されるように変更します。
※STLファイルは、「面はすべて同一のマテリアル設定」であるモデルしか表現できませんが、OBJファイルは、「面はすべて同一のマテリアル設定」でないモデルも表現できます。また、OBJファイルは、頂点ごとに異なる法線ベクトルデータを持ったモデルも表現できます。

プロジェクトを開く

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

モデルデータ読み込み関数のヘッダーファイルの作成

「メニュー/プロジェクト/新しい項目の追加」でファイル名「LoadObjFile.h」のファイルを作成します。

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



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

モデルデータ読み込み関数のソースファイルの作成

「メニュー/プロジェクト/新しい項目の追加」でファイル名「LoadObjFile.cpp」のファイルを作成します。

LoadObjFile.cppの内容を以下のようにします。



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

メニュー「ファイル/開く」の応答関数の変更

ファイル選択ダイアログにobjファイルに関する項目の追加と、選択したファイルの拡張子によって読み込み関数を振り分ける処理を追加します。

ModelViewerRenderer.cpp の WndProc関数 のID_FILE_OPENに対応する処理の内容を以下のようにします。



ModelViewerRenderer.cppのファイルのヘッダー部に
#include "LoadObjFile.h"
を追加します。



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

実行

実行し、アスキー形式STLファイルだけでなくOBJファイルからモデルデータを読み込んで描画できるようになっていることを確認します。

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

ダウンロード

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

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


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


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