2016-05-03 11 views
3

私は私のマップ(私の乱数発生器で作成した2次元配列)が含まれvector<vector<int>>を、持っている:は、C++での波面の.objファイルを作成します(3Dメッシュ)

img http://www.cjoint.com/doc/16_05/FEcx3nclcv4_Screenshot-from-2016-05-03-01-54-07.png

私は3Dで、このマップを表示します(Irrlichtグラフィック3Dライブラリ)。大きな問題は:私のマップが大きすぎる(1920x1080)、私は私の画面に2073600小さな立方体を表示することはできません。 (私はマップを変更し、良いメッシュで画面をリロードすることができます)

私の解決策は1キューブを作成し、それにすべてのピクセルを書き込むことです。 あなた...)

img http://www.cjoint.com/doc/16_05/FEdajlMNlQ4_Untitled.png

だから...私は、C++でファイルを解析/ /書き込みを作成する方法を知って、今、私の問題がある:私は非常によく、3D視点と.OBJオブジェクトを知りません...

私は、ウィキペディアや他のドキュメントとのOBJ形式を学んでいます。

ライブの.objオブジェクトの中に変更するよりも簡単な解決策があるかどうか、私は疑問に思う...とされていない場合...私は私のOBJの概念のためのいくつかの助けを必要と...

+0

ここ.objファイルは、ここでは、3Dフォーマットを参照:C/C++コードをコンパイルから生成されたVisual Studioの.objファイルオブジェクトファイルとは対照的に、https://en.wikipedia.org/wiki/Wavefront_.obj_file - 私はタイトルを編集しましたそれを非常に明確にする。何でも作り、それをメモリにロードします。あなたは(http://www.martinreddy.net/gfx/3d/OBJ.specそれは単純ではないのですが、比較的よく、ここで文書化されている)の.obj形式のパーサを記述する必要があります – xaxxon

+0

必要な変更を加えてから、それをシリアル化して戻します。これはかなり大きな仕事であり、心がかすかなものではありません。ファイルが使用する.objフィーチャーの数に応じて、パーサーを作成する必要がある.objフォーマットの量が決まります。 – xaxxon

+0

ありがとう、私は作成プロセスを進めています。しかし、私は吹き飛ばされている:私はどのように表面3Dの穴を作るのですか? – usernameHed

答えて

0

私はあなたがいると思いますここで混乱する問題。 Alias wavefront objは3Dジオメトリを保存するためのファイル形式ですが、ジオメトリを抽出するのは非常に簡単です。 MTL(Material Template Library)は、ジオメトリだけの複雑なもので、通常、ジオメトリの視覚的表現を定義するための.objファイルに関連付けられています(マテリアルの外観に関して)。

幾何学的な問題の線に沿って(表面から穴を取り除く方法)、幾何学的表現に完全に依存しています(三角形分割されたデータを表すobjについて尋ねるので、 。データの保存方法に関する詳細情報が必要です。

たぶんジオメトリを構築するためにブール演算を使用して建設ソリッドジオメトリに探してみてください。あなたがデータを三角ている場合は、あなたが最終的に有効であり、これはあなたの「穴除去」のため取り外す必要がある三角形見にブルートフォースを使用することになり、作業する三角形処理/ジオメトリのBVHのいくつかのフォームを使用しない限り。

関連する問題