2012-04-05 15 views
0

私は研究しているバイナリの種類の新しいビジュアライゼーションを作成しようとしています。既存のコードから始めます。パラメーター。OpenGLプログラムからインポート可能なものへの頂点のリスト

私は物事のアニメーション側でもう少し自由を望んでいますが、私の最初の考えは、プログラムによって作られたモデルを何か他の人が読める形式で出力することでした(Blender? (Wavefront?).OBJ形式で読んでいますが、それは簡単なようですが、正しいとは思えません。インポートは黙って失敗します。オブジェクトが実際にどのように格納されているのか分からないためです。

私が始めているプログラムはBinSimと呼ばれるC++プロジェクトで、作成されたすべてのオブジェクトのログファイルに頂点を出力するフラグが既にあります。それは非常に単純な、インデックスのx、y、z、およびR、G、B(時々A)のリストのちょうどリストのようです。私が使ってきた出力形式の例はhereです。各オブジェクトはポイントの緯度/経度グリッドに分割され、これは小さなスニペットです(作成されたすべてのオブジェクトのフルファイルは180MB以上です)。

私はオブジェクトが三角形のストリップとして定義されているのを見ることができましたが、私はこれらのすべてによって混乱しています。私はこの頂点のリストを.OBJまたは何でも)フォーマット。申し訳ありませんが、これは本当に別の領域(GameDev?)に属し、ありがとう!

答えて

0

OpenGLはシーン管理システムではありません。これは描画APIであり、モデルストレージ用のOpenGLデータ構造を開始するのは面倒です。すでに述べたように、OpenGL のものを描画します。いくつかの描画プリミティブがあります。三角形のストリップはそれらの1つです。 2つの頂点(線を形成する)から始まり、次に来る各頂点は、最後の2つの頂点の線を三角に延長します。 Wavefront OBJフォーマットは三角形ストリップを認識しません。OpenGLがその方法をエミュレートすると、個々の三角形に分割する必要があります。

BlenderはPythonスクリプトを使って簡単に拡張できることを忘れてはいけません。また、あなたが既に持っているデータのインポートスクリプトを書くこともできます。

+0

異なる方法でモデルを作成することは、この特定のホイールを再発明する理由がないので、このプロジェクトの範囲を超えています。 私は、三角形ストリップをより使いやすいものにするための具体的なヒントを期待していました。私はBlenderが拡張性があり、私は輸入者を書くことができます、そして、それは本質的に私がやろうとしていることです。 – Ryan

+1

出力ファイルRyanに接続情報はありません。 [m] [n]の最初のインデックス[m]はストリップインデックスですか?そうであれば、ストリップからn個ずつ繰り返し、3つの頂点[m] [n]、[m] [n + 1]、[m] [n + 2]を放出することによって個々の三角形を生成することができます。 – Robinson

関連する問題