3Dモデルを使用したOpenGLでのアニメーション


11

Blenderでモデルを作成しました。今、私は自分のc ++プログラムでその3Dモデルを読みたいと思います。モデルをさまざまなファイル形式(.obj、.3ds、COLLADAなど)にエクスポートして、C ++プログラムで読み取ることができると考えました。私はかなり長い間それを行うためにウェブを検索していて、多くのチュートリアルを見つけました。しかし、私はそれらのほとんどで問題に遭遇しました。たとえば、Neheチュートリアルでは、プログラムで使用したくないglauxを使用しています。残りのチュートリアルでは、Blenderでサポートされていないmd2を使用しています。

それで、3Dモデルのエクスポートに使用するファイル形式と、OpenGLプログラムでそれをロードする方法を誰かに教えてもらえますか?また、そのモデルをアニメーション化するにはどうすればよいですか?OpenGLを使用してc ++プログラムに読み込まれた後、トーンマッピングなどの追加の効果を追加することは可能ですか?はいの場合はどうですか?

PS私はゲーム開発にLinuxを使用しています

回答:


2

私はOBJフォーマットに行きます。おそらくすでにご存じのとおり、C ++用のOBJローダーは何百もあります。最も成熟したものの1つはAssimpだと思います。これは多くの異なるフォーマットをサポートしており、十分に文書化されています。ここに、彼らがそれを使用する例があります。


lighthouse.comのリンクが機能しない
snape '13年

すべてのブラウザで動作します...このリンクを試してくださいx90.es/1CC
Dan

2
Objはアニメーションメッシュをサポートしていませんが、サポートしていますか?"Blender openglスキンメッシュ"をグーグル検索すると、編集内容に適した形式が見つかるはずです。投稿を削除できません
でした。obj

1
.objはアニメーションをサポートしていないため、この答えは間違っています。stackoverflow.com/questions/757145/...
ショーンMiddleditch

2

Blender 2.60はCOLLADAアニメーションのサポートを修正しました。以前のバージョンでは多かれ少なかれ壊れていました。ただし、独自のコードでモデル形式をまだロードしていない場合は、最初に.objをロードする方法を学ぶことをお勧めします。ASCII形式であるため、外部のローダーライブラリがなくても、人間が読み取れ、簡単に読み取ることができます。


1

3dsにはアニメーションデータが含まれていないため、動作しません。Colladaについてはよくわかりませんが、ゲームでどのフォーマットを使用するかを決め、よく検索して比較し、最後にB3Dフォーマットを使用したところ、骨格アニメーションをサポートし、Irrlichtからロードできます(ライティング値も含まれています) )。

3dsMaxの「b3dパイプライン」エクスポーターを使用し、メッシュをアニメーション化してライティングするために独自のhlslシェーダーをコーディングしました。これは非常にうまく機能します。

Irrlichtがどのように実行するか(つまり、ロードとアニメーション)、ソフトウェアでアニメーションを実行するかを確認できますが、シェーダーを使用して実行する方法を少し検索した例があります(必要な場合)。いいことに、IrrlichtはOpenGLとLinuxの両方をサポートしています。

非常に簡単な別のフォーマットは.Xフォーマットです。スケルトンをエクスポート、ロード、解析、セットアップしてアニメーション化する方法については、数多くの例があるはずです。Microsof形式ですが、使用したくないかもしれません:-)

トーンマッピングなどはアニメーションとはまったく関係がないので、その手法の使い方を知っていれば、アニメーションメッシュでそれを行うことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.