0

このブラウザとビットマップ グラフィックスが支配する世界で - 何十年にもわたるマッキントッシュ風の豪華に装飾されたウィンドウときれいなコンポーネントの後 - 固定サイズの文字テキストをレンダリングし、ズーム可能な 3D パネルに非常に単純化された「GUI」を描画する方法を探しています。インタラクティブにサイズを変更して、コンテンツを小さくし、ラップしたり、読みにくくしたりして、ユーザーが並べて並べたり、「スタック」したり、向きを変えたり、ドラッグしたりできる「パネル」にします。

ソフトウェアは移植可能またはクロスプラットフォームである必要があります。

シンプルで基本的な 3D レイヤー、たとえば opengl を使用するのが良いようです。問題は、これらのことについて何も知らないことです。

3D ツールキットのすべてを学ばなくても作業を完了できる最も簡単な方法は何ですか?

これを達成するための最も適切なツールは何でしょうか?

java3d? それとも時代遅れ/遅いですか?qt ツールキット 3d ウィジェット?

ヒントを事前にありがとう

4

1 に答える 1

1

OpenGL はテキストのレンダリングをサポートしています。具体的には: `

glRaster3f(GLfloat x, GLfloat y, GLfloat z);

「ラスター」位置を設定し、

glutBitmapCharacter(GLUT_BITMAP_9_BY_15, 'h');

その「ラスター」位置に h をレンダリングします。ただし、それには OpenGL API を学習する必要があります。

もう 1 つのオプションは、プロジェクションのすべての計算を自分で行い、それをウィンドウのサイズの文字配列にレンダリングすることです。

OpenGL が 3D 投影と変換に使用する行列を次に示します。

それは一般的に同じ効果があり、余分なライブラリをすべて必要とするわけではありません。ただし、実際にはコア プログラムが大きくなり、OpenGL のようにハードウェア アクセラレーションが行われないため、少し遅くなる可能性があります。

一方、Java3D は実際には OpenGL または Direct3D のいずれかの上で実行されます。つまり、Java3D を実行するために必要なライブラリはさらに広範囲になります。ただし、API であるにもかかわらず、OpenGL や Direct3D よりもはるかに単純な API のようです。

双方向性は、まったく別の問題です。

繰り返しますが、OpenGL には必要なサポートがあります。

gluUnProject(GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ);

適切なプロジェクションとモデルビュー マトリックスが与えられた場合、マウス クリックによって返されたウィンドウ座標を最前面のテクセルの 3 空間座標に変換します。

この場合の java3D についても、独自の 3D 効果を計算する場合に何を使用するかについても、私にはよくわかりません。

全体として、選択できる項目はたくさんありますが、どれもかなりの作業と検討が必要です。

于 2010-01-02T17:11:20.970 に答える