2011-02-09 66 views
2

JTファイル形式を表示/レンダリングできるビューアを作成したいとします。 JT2Goはオープンソースではありませんので、私は自分のために1を作成したいと思います。JT 3Dファイル形式のビューアを作成する方法

私の要件はそれほど高くなく、私はJT2GOの持つ機能を必要とせず、3Dファイルをレンダリングしたいだけで、個々のコンポーネントのレイヤーや選択は不要です。ちょうど飛行機の視聴者。で仕様を取得することによって

+0

JTファイルから三角形や材料の情報を抽出する方法を理解しましたか?もしそうなら、これをどのように達成したか分かち合いましょうか?私は同じことをやろうとしていますが、JTファイルからデータを取り出す方法を考え出すのに問題があります。 – Davido

+0

Parry、あなたは最終的にViewerの開発に成功しましたか?事前に感謝します。 –

+0

こんにちは私は私たちの要件が変更されていませんでしたし、我々はオープンGLで作業を始めました –

答えて

4

スタート:

http://www.plm.automation.siemens.com/en_us/Images/JT_v95_File_Format_Reference_Rev-A_tcm1023-111987.pdf

と、ファイルを読み取るためのライブラリを作成します。仕様は大きく見えますが、実装は簡単です。私はメモリ内のデータ構造全体を保持せずにファイルの要素にアクセスすることが可能でなければならないと思います。

ビューアパーツをプログラミングするときは、OpenGLを直接使用しないで、シーングラフライブラリを使用してください。

http://assimp.sourceforge.net/

はまた不幸な略語ASSIMPで知っている:

+0

私はその仕様を持っているビューアの部分にいくつかの詳細を投げることができますか?私はその部分で混乱しています。私は画面上でJTから一度読んだことをどのように表示するのですか? –

0

開くアセットライブラリのインポートにこのファイル形式のサポートを追加してみてください(OpenSceneGraphは私の心の中にポップ最初のものです)。彼らはすでにビューアーを持っているので、インポート・ライブラリーにフォーマットを追加すると完了します。さらに、既存のオープンソースライブラリに別のフォーマットのサポートを追加しました。

+0

おかげで、ビューアの部分にいくつかの解決策を与えることができますか?視聴者はどのくらい正確に動作し、3Dグラフィックス領域ではどのように表示されますか? –

0

ロードしたファイルを表示するには、基本的にプログラムでOpenGLを実装する必要があります。各オブジェクトは、そのジオメトリ(頂点)を表す浮動小数点値の配列です。だから、一度この情報を取り出すと、標準のOpenGL呼び出しを使ってレンダリングするだけです。例えば、最密充填配列(山車の1次元配列)にあなたの頂点を置く:

vertexX, vertexY, vertexZ, normalX, normalY, normalZ 

山車のこの配列は、モデルのすべての面を表しています。 1つの面に3つの頂点があり、上記の線は1つの頂点になります。 float配列を作成したら、レンダリングするのが簡単です。

glEnableClientState(GL_VERTEX_ARRAY); 
glEnableClientState(GL_NORMAL_ARRAY); 

glVertexPointer(3, GL_FLOAT, sizeof(vertices[0])*6, &vertices[0]); 
glNormalPointer(GL_FLOAT, sizeof(vertices[0])*6, &vertices[3]); 

glColor4f(R, G, B, 1); //range 0-1 
glDrawArrays(GL_TRIANGLES, 0, numVertices); //number of floats in array divided by 6 

glDisableClientState(GL_VERTEX_ARRAY); 
glDisableClientState(GL_NORMAL_ARRAY); 

これをOpenGL-ES 1.1レンダリングループに入れてください。これがあなたのためになるかどうか私に教えてください。また、JTファイル形式の読み方を共有してください。

3

Javaライブラリは、http://www.johannes-raida.de/jnetcadから使用できます。 私が見る限り、JTバージョン8のファイルをサポートする必要があります。私はDXFインポートライブラリを使用して、とても満足していました。 APIは同じなので、座標、法線、色、レイヤーを持つすべての三角形にアクセスできます。

2

オープンカスケードライブラリを使用することもできます。これはオープンソースのC++ライブラリ(LGPL)で、主にCAD用に設計されています。現在、JTドキュメントのファセット(三角形)を読み取ることもサポートしています。 http://www.opencascade.org/support/applications/jt_assistant/ そしてJtアシスタントはJTドキュメントを視覚化することもできます。このアプリケーションのC++コードはオープンソース(GPL)です。 Jtアシスタントの利点の1つは、Jt2Goと比較すると、JTドキュメントの異なるレイヤ(グループ)を表示できることです。

関連する問題