3dsmaxで3次元モデルを作成したのですがそれをopenglで読み込んで画面に表示させたいです。
3次元モデルはvrmlに変換して読み込もうと思ったのですがサンプルコードが少なくよくわかりませんでした。
まだまだ勉強し始めてまもないいので懇切丁寧に指導していただけると助かります。
環境はvisualstudio C++です。
よろしくお願いします。
3dsmaxで作った3次元データをopenglで読み込ませる
-
Mana
Re: 3dsmaxで作った3次元データをopenglで読み込ませる
OpenGL自体にはモデルデータを読み込んで表示する機能はありません。
掲示板で懇切丁寧に説明するのは無理があります。
VRMLじゃないといけないのでしょうか?
3ds Maxを作ったAutodeskという会社はFBXというフォーマットを提唱してます。
SDKや変換ツールなどが無償公開されてます。
『OpenGL FBX』で検索すればサンプルコードもある解説サイトがたくさん見付かりますけど。
掲示板で懇切丁寧に説明するのは無理があります。
VRMLじゃないといけないのでしょうか?
3ds Maxを作ったAutodeskという会社はFBXというフォーマットを提唱してます。
SDKや変換ツールなどが無償公開されてます。
『OpenGL FBX』で検索すればサンプルコードもある解説サイトがたくさん見付かりますけど。
-
milla
Re: 3dsmaxで作った3次元データをopenglで読み込ませる
ローダを自作する勉強なんじゃないかな?
手始めにFBX SDKを使ってFBXで3Dモデルを表示できるようにして、そこから自分の読み出したい形式のローダを自作していけばいいと思う。
3dsmaxはwikiに構造体載ってた。
http://en.wikipedia.org/wiki/.3ds
手始めにFBX SDKを使ってFBXで3Dモデルを表示できるようにして、そこから自分の読み出したい形式のローダを自作していけばいいと思う。
3dsmaxはwikiに構造体載ってた。
http://en.wikipedia.org/wiki/.3ds
-
tote
Re: 3dsmaxで作った3次元データをopenglで読み込ませる
返信ありがとうございます。
ご教授の通りFBXを用いて表示させようと以下のサイトを参照しました。
http://stepism.sakura.ne.jp/pukiwiki/in ... 9%FE%A4%DF
しかしここで出てくる
#include "FBXLoader.h"
でプロジェクトのヘッダファイルに何を加えたらよいのかわからないため行き詰ってしまいました。
ご教授の通りFBXを用いて表示させようと以下のサイトを参照しました。
http://stepism.sakura.ne.jp/pukiwiki/in ... 9%FE%A4%DF
しかしここで出てくる
#include "FBXLoader.h"
でプロジェクトのヘッダファイルに何を加えたらよいのかわからないため行き詰ってしまいました。
-
milla
Re: 3dsmaxで作った3次元データをopenglで読み込ませる
ざっと読んだ感じ
FBXLoader.hをインクルードした別cppが、FBXLoader.cpp内部で定義されている関数を使えるようにするために
関数プロトタイプ宣言やextern宣言が書かれているのではないかと思われます。
FBXLoader.hをインクルードした別cppが、FBXLoader.cpp内部で定義されている関数を使えるようにするために
関数プロトタイプ宣言やextern宣言が書かれているのではないかと思われます。
-
Mana
Re: 3dsmaxで作った3次元データをopenglで読み込ませる
LoadFBX関数を見ると最後に読み込んだ内容を全部捨てているようですが?
『•主要な箇所だけ切り抜いて載せています。』と書いてあるとおり手順を示すだけのこのままでは実用性のないサンプルコードですね。
個人的には他をあたったほうが良いと思いますが。
milla氏を否定するつもりはまったくないのでこのまま完成を目指すならmilla氏のアドバイスに従ってください。
『•主要な箇所だけ切り抜いて載せています。』と書いてあるとおり手順を示すだけのこのままでは実用性のないサンプルコードですね。
個人的には他をあたったほうが良いと思いますが。
milla氏を否定するつもりはまったくないのでこのまま完成を目指すならmilla氏のアドバイスに従ってください。
-
milla
Re: 3dsmaxで作った3次元データをopenglで読み込ませる
流し読みして、ヘッダーファイル内を推測しただけなので、そこまでは見てなかったです。
ちゃんとしたサンプルコードは、3Dプログラムの参考サイトあたりに書いてるんじゃないでしょうか?
まーべりっくぷろじぇくととか。
ちゃんとしたサンプルコードは、3Dプログラムの参考サイトあたりに書いてるんじゃないでしょうか?
まーべりっくぷろじぇくととか。
-
tote
Re: 3dsmaxで作った3次元データをopenglで読み込ませる
ご助言通り以下のサイトを参照してサンプルコードを真似してみました。
http://www21.atwiki.jp/opengl/pages/95.html
記載通りに設定を行いfbx形式の3dモデルを表示させようとしたところ以下のエラーが出てしまいました。
1>c:\users\username\documents\visual studio 2010\projects\fbx2\fbx2\main.cpp(2): warning C4627: '#include <GL/freeglut/freeglut.h>': プリコンパイル済みヘッダーの使用を検索中にスキップされました
1> ディレクティブを 'StdAfx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します
1>c:\users\username\documents\visual studio 2010\projects\fbx2\fbx2\main.cpp(3): warning C4627: '#include "fbx.h"': プリコンパイル済みヘッダーの使用を検索中にスキップされました
1> ディレクティブを 'StdAfx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します
以下gl関係の識別子が見つからなかったとエラーの連続で、パスやファイルの場所を確認しても解決できませんでした。
http://www21.atwiki.jp/opengl/pages/95.html
記載通りに設定を行いfbx形式の3dモデルを表示させようとしたところ以下のエラーが出てしまいました。
1>c:\users\username\documents\visual studio 2010\projects\fbx2\fbx2\main.cpp(2): warning C4627: '#include <GL/freeglut/freeglut.h>': プリコンパイル済みヘッダーの使用を検索中にスキップされました
1> ディレクティブを 'StdAfx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します
1>c:\users\username\documents\visual studio 2010\projects\fbx2\fbx2\main.cpp(3): warning C4627: '#include "fbx.h"': プリコンパイル済みヘッダーの使用を検索中にスキップされました
1> ディレクティブを 'StdAfx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します
以下gl関係の識別子が見つからなかったとエラーの連続で、パスやファイルの場所を確認しても解決できませんでした。
-
Mana
Re: 3dsmaxで作った3次元データをopenglで読み込ませる
エラーに書いてあるとおりプリコンパイル済みヘッダを使うならスキップしたとメッセージが出ているインクルードディレクティブ(#includeの行)をstdafx.hの中に移動してください。tote さんが書きました:記載通りに設定を行いfbx形式の3dモデルを表示させようとしたところ以下のエラーが出てしまいました。
ビルドメニューからリビルドでもとりあえず解決すると思いますが。
試行錯誤には邪魔な場合があるのでプリコンパイル済みヘッダを使わない設定でやるのが個人的には良いと思いますがね。
公式GLUT使っているならfreeglut→glutの置き換えが必要かと。tote さんが書きました:以下gl関係の識別子が見つからなかったとエラーの連続で、パスやファイルの場所を確認しても解決できませんでした。
その前にGLUTを使える環境が構築できているかどうかですが。
GLUT以外のフレームワーク使ってるのならそっちに合わせれば良いです。
OpenGLのglなんちゃら命令はGLUTとは直接関係ないですから。
Re: 3dsmaxで作った3次元データをopenglで読み込ませる
ご丁寧なアドバイスありがとうございました。
なんとか読み込むことができましたので解決とさせていただきます。
なんとか読み込むことができましたので解決とさせていただきます。