-  -  -  - - - ----->

JX

J3D のデザイン

Design of J3D

--------------------

 J3D および JX3D ライブラリは、OpenGL互換ライブラリ Mesa を利用して3D グラフィックスをサポートします。理想的に、J3D は、3Dレンダリング・エンジンから独立しております。JGL* および JXMesa* だけが実際に、 OpenGL に依存することとなります。

 Java3D の設計は、非常に参考になると思います。

J3DObject は、基本的なコンテナー・クラスです。最終的に、これらは以下の機能を提供します。:

J3DObject は、また、時間単位を呼び出す仮想関数を定義することにより、アニメーションを提供します。デフォルト設定では、リニアー、およびアンギュラー速度を実装しますが、より複雑(重力等)な定義をするのであれば、派生クラスをオーバーライドすることができます。

合成オブジェクトは、J3DComposite から派生しており、全部のコンテナーJ3DUniverse は、また すべてを含むJ3DObject からの派生であります。

すべてのプリミティブは、J3DObject から派生します。


グループとプリミティブの考え方を区別する為に、コードを単純化します。グループは、その子のバウンディング・キューブを含有を計算し、何かを描画する時のみ最適化します。

J3DUniverseを表示するには、ひとつには J3DViewPlatform を使用します。  これは、ユーザ側の現実の世界(スクリーンからの距離、ウインドウのサイズ)と仮想の世界(ViewPlatformのスケールと位置)とをマッピングして定義します。 それぞれのUniverseで、多層 ViewPlatform が可能となります。それぞれ、J3DCamera の派生クラスを使用します。現状では、JXMesaCamera は、オプションとして利用できます。

JX3DWidget は,JXWidget の派生であり、Universeを表現するために J3DViewPlatformを所有します。

J3DPainter は,理想的に、J3D を 3D レンダリング・エンジンから独立するために,すべての機能を抽出します。すべてのJ3DObject は、Painter と交信します。現在は,JXMesaCamera は、J3DPainter から継承されますが、それほど多くの機能はありません。


匿名 ftp により JX を使うために必要とされる全ての情報を入手することができます。


 JX Features Page