3dsmaxで作った3次元データをopenglで読み込ませる

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
tote

3dsmaxで作った3次元データをopenglで読み込ませる

#1

投稿記事 by tote » 12年前

3dsmaxで3次元モデルを作成したのですがそれをopenglで読み込んで画面に表示させたいです。
3次元モデルはvrmlに変換して読み込もうと思ったのですがサンプルコードが少なくよくわかりませんでした。
まだまだ勉強し始めてまもないいので懇切丁寧に指導していただけると助かります。
環境はvisualstudio C++です。
よろしくお願いします。

Mana

Re: 3dsmaxで作った3次元データをopenglで読み込ませる

#2

投稿記事 by Mana » 12年前

OpenGL自体にはモデルデータを読み込んで表示する機能はありません。
掲示板で懇切丁寧に説明するのは無理があります。

VRMLじゃないといけないのでしょうか?
3ds Maxを作ったAutodeskという会社はFBXというフォーマットを提唱してます。
SDKや変換ツールなどが無償公開されてます。
『OpenGL FBX』で検索すればサンプルコードもある解説サイトがたくさん見付かりますけど。

milla

Re: 3dsmaxで作った3次元データをopenglで読み込ませる

#3

投稿記事 by milla » 12年前

ローダを自作する勉強なんじゃないかな?
手始めにFBX SDKを使ってFBXで3Dモデルを表示できるようにして、そこから自分の読み出したい形式のローダを自作していけばいいと思う。

3dsmaxはwikiに構造体載ってた。
http://en.wikipedia.org/wiki/.3ds

tote

Re: 3dsmaxで作った3次元データをopenglで読み込ませる

#4

投稿記事 by tote » 12年前

返信ありがとうございます。
ご教授の通りFBXを用いて表示させようと以下のサイトを参照しました。
http://stepism.sakura.ne.jp/pukiwiki/in ... 9%FE%A4%DF
しかしここで出てくる
#include "FBXLoader.h"
でプロジェクトのヘッダファイルに何を加えたらよいのかわからないため行き詰ってしまいました。

milla

Re: 3dsmaxで作った3次元データをopenglで読み込ませる

#5

投稿記事 by milla » 12年前

ざっと読んだ感じ
FBXLoader.hをインクルードした別cppが、FBXLoader.cpp内部で定義されている関数を使えるようにするために
関数プロトタイプ宣言やextern宣言が書かれているのではないかと思われます。

Mana

Re: 3dsmaxで作った3次元データをopenglで読み込ませる

#6

投稿記事 by Mana » 12年前

LoadFBX関数を見ると最後に読み込んだ内容を全部捨てているようですが?
『•主要な箇所だけ切り抜いて載せています。』と書いてあるとおり手順を示すだけのこのままでは実用性のないサンプルコードですね。
個人的には他をあたったほうが良いと思いますが。

milla氏を否定するつもりはまったくないのでこのまま完成を目指すならmilla氏のアドバイスに従ってください。

milla

Re: 3dsmaxで作った3次元データをopenglで読み込ませる

#7

投稿記事 by milla » 12年前

流し読みして、ヘッダーファイル内を推測しただけなので、そこまでは見てなかったです。
ちゃんとしたサンプルコードは、3Dプログラムの参考サイトあたりに書いてるんじゃないでしょうか?
まーべりっくぷろじぇくととか。

tote

Re: 3dsmaxで作った3次元データをopenglで読み込ませる

#8

投稿記事 by tote » 12年前

ご助言通り以下のサイトを参照してサンプルコードを真似してみました。
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で読み込ませる

#9

投稿記事 by Mana » 12年前

tote さんが書きました:記載通りに設定を行いfbx形式の3dモデルを表示させようとしたところ以下のエラーが出てしまいました。
エラーに書いてあるとおりプリコンパイル済みヘッダを使うならスキップしたとメッセージが出ているインクルードディレクティブ(#includeの行)をstdafx.hの中に移動してください。
ビルドメニューからリビルドでもとりあえず解決すると思いますが。
試行錯誤には邪魔な場合があるのでプリコンパイル済みヘッダを使わない設定でやるのが個人的には良いと思いますがね。
tote さんが書きました:以下gl関係の識別子が見つからなかったとエラーの連続で、パスやファイルの場所を確認しても解決できませんでした。
公式GLUT使っているならfreeglut→glutの置き換えが必要かと。
その前にGLUTを使える環境が構築できているかどうかですが。
GLUT以外のフレームワーク使ってるのならそっちに合わせれば良いです。
OpenGLのglなんちゃら命令はGLUTとは直接関係ないですから。

tote
記事: 1
登録日時: 12年前

Re: 3dsmaxで作った3次元データをopenglで読み込ませる

#10

投稿記事 by tote » 12年前

ご丁寧なアドバイスありがとうございました。
なんとか読み込むことができましたので解決とさせていただきます。

閉鎖

“C言語何でも質問掲示板” へ戻る