[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:00352] J-FAQ about Java3D (2/2) draft version



◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇ 掲載広告募集中     ¥ 10,000〜  ◇
◇ http://www.dns-ml.co.jp/ad-proto.html◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇

安藤@NK-EXA です。
続きです。

(2/2)
-------------------------------------------------------------------------------
[Q] Java 3D と VRML の関係は?

    Java 3D は三次元グラフィックスの為のプログラミング API であるのに対して、
    VRML は三次元空間を表現する為のファイルフォーマットである。
    独自のファイルフォーマットを持たない Java3D は
    外部ファイルフォーマットとして
    ローダー次第で各種フォーマットを扱うことができる
    その中でも VRML(VRML97) は表現できる機能が Java3D に似通ったもののため
    Java3D と親和性のあるフォーマットとして使われることが多い。
    また Java3D の仕様策定の段階で VRML との親和性を考え各種機能が
    盛り込まれたことも親和性の要因となっている。

-------------------------------------------------------------------------------
[Q] OpenGL Java binding と Java 3D はどう違うのでしょう?
    どういうときにどちらを選べばいいのでしょう?

    OpenGL Java binding は OpenGL の各関数を wrapper でくるんで、
    Java から利用できるようにしたものです。
    OpenGL はハードウェアに密着した低レベル API であるのに比べ、
    Java3D はシーングラフベースの高レベル API であるのが大きな違いです。

    よりハードウェアに密着した高速のグラフィックスを求める場合には
    OpenGL Java binding を用い、シーングラフベースでモデルデータを 
    扱いたい場合や、カリング等の機能をわざわざ自分で実装するのではなく、
    API にまかせてしまいたい場合は Java3D を使うのが良いでしょう。

    また Java3D は Windows と Solaris 環境でしか動かないのに比べ、
    OpenGL Java binding は各種環境下で動き、ソースが公開されているものも
    あるのが選択の条件になる場合もあります。


    OpenGL Java binding については現在 OpenGL の標準化団体 ARB によって
    策定の最中です。

    非公式の OpenGL Java binding としては主に以下のものがあります。 
    Magician http://www.arcana.co.uk/products/magician
    GL4Java http://www.jausoft.com/gl4java.html
    JSparrow http://www.will.or.jp/~jsparrow/
    一覧は以下の URL にあります
    http://www.opengl.org/Documentation/Implementations/Languages.html

    また Java3D と同じく シーングラフベースで、各種カリング機能を持った
    OpenGL Optimizer の Java binding もあります。
    Sorceress 
    http://www.arcana.co.uk/products/sorceress/

-------------------------------------------------------------------------------
[Q] Java 3D と OpenGL の関係は?

    Java 3D は下位層の Graphics API として OpenGL と Direct3D(Windows) を
    Native で使い実装されています。
    OpenGL はハードウェアに密着した低レベル API であり
    Java3D はシーングラフベースの高レベル API です。お互いに競合するものでは
    ありません。

-------------------------------------------------------------------------------
[Q] VRML のノード対、Java3D ノードとの対応は?

    VRML のノードと Java3Dのノードは
    1対1 に対応しているわけではありませんが、機能的には良く似通っています。
    VRML Loader や VRML Saver を調べることによって
    VRML のどのノードが Java3D のどのノードに対応するのか調べることが
    できるでしょう。

    CyberVRML97 が参考になります
    http://www.cyber.koganei.tokyo.jp/vrml/cv97/cv97java/index.html

-------------------------------------------------------------------------------
[Q] Java 3D は、例えば、どのようなことに使えるのでしょうか?
[Q] Java 3D の用途の例は?

    各企業がどのように Java3D を利用しているかといった例が
    以下の URL で紹介されています。
    http://www.sun.com/desktop/java3d/in_action/index.html
    
    また各種 Java3D のデモをご覧になることによって
    Java 3D の用途がイメージできることでしょう。
    http://www.sun.com/desktop/java3d/demos/index.html

-------------------------------------------------------------------------------
[Q] ドライバのリクルートはするのか?
    プロモーションはするのか?

    サンがどこか特定の企業の VR 入力デバイスや、出力デバイスをサポートするという
    予定はありません。必用な仕様は公開されているので、
    各社が Java3D に対応したものをリリースするのは自由です。
    
-------------------------------------------------------------------------------
[Q] View と Device との関係は?

     ??? 意味不明

-------------------------------------------------------------------------------
[Q] リフレッシュレートとの対応をとるには?

    イミディエイトモードを使いプログラマが描画のタイミングを取り、
    バックバッファをスワップさせて対応を取ってください。
    ただ Java3D は SGI の IRIS Performer のようなフレームレートを
    厳密にコントーロールできるよう設計されたものではありません。
    Java の場合 GC が走るタイミングによって、描画のタイミングも  
    厳密にコントロールできない場合があります。
    秒60フレームの描画が求めるような場合は IRIS Performer 等の
    リアルタイムレンダリングを目的とした Graphics API を 
    使うのが良いでしょう。

-------------------------------------------------------------------------------
[Q] マウスの動き -> View の動きとの対応を簡単に取るには?

     ML の過去記事にあったはず、発見できず

-------------------------------------------------------------------------------
[Q] 三次元グラフィックスで Java を使うのは遅くはないのですか?
   
    Java3D は 全部が Java で描かれているわけではなく、描画部分は
    OpenGL や Direct3D を Native でコールしています。
    描画部分に関しては Java とは関係なく、ハードウェアの性能を生かした描画を
    行います。
    Java3D は高レベル API ですので OpenGL で直接描かれたプログラムよりは
    遅いことは否めませんが、比較的現実的な速度で動作します。
    また Alpha Version, Beta Version から比べて正式版の Java3D 1.1 は、
    だいぶ速い印象を受けます。

-------------------------------------------------------------------------------
[Q] シーン・グラフとはなんですか?

    三次元空間内のオブジェクトの形状データやそれらの属性、振る舞いなどを
    メモリ上に展開したデータベースのことをシーングラフといいます。
    このデータベースは三次元画像を描画するための構成要素を
    ツリー構造で表現したものです。

    三次元画像を描くとなると、画面に球を描いて、立方体を描いて.... と
    順次描画していくことを思い浮かべるかもしれません。
    しかしシーングラフベースの Graphic API の場合、シーングラフ内のデータを
    更新することによって、画面に描かれている画像が自動的に更新されます。

    Java3D ではシーングラフのデータをチューニングして保持する
    「コンパイル済みリテインモード」と、通常の「リテインモード」
    でシーングラフをハンドリングしています。
    
-------------------------------------------------------------------------------
[Q] 書籍『Java 3D API 仕様』の最初の方に書いてある
    UniverseBiulder というクラスが見つかりません。
    この本の通り入力してコンパイルするとコンパイルエラーになります。
    なぜでしょうか?

     スペルが間違ってます :-)

     UniverseBuilder は昔はユーティリティパッケージに含まれていた
     らしいのですが、現在は見当たりません。
     第1章の後半に UniverseBuilderを簡略化もののソースが書かれているので
     それを使いましょう。
     また、以下の URL に Object から extend された
     UniverseBuilder のソースがあります
     http://www.sun.com/desktop/java3d/collateral/j3d_api/j3d_api_5.html

-------------------------------------------------------------------------------
[Q] Java3D 1.1 には com.sun.j3d パッケージの
    ソースコードが添付されているようですが、
    どこにあるのでしょうか?

    Java3D をデフォルトでインストールすると以下の場所にインストールされます

    C:\jdk1.2\java3d-utils-src.jar

-------------------------------------------------------------------------------
[Q] Java 3D もオープンソースになるのですか?

    現在はオープンソースではありません。
    いまのところサン独自のライセンス形態にものづいて
    Java 2 はソースコードが公開されています。
    http://www.sun.com/software/communitysource/java2/
    しかし Java3D はその中には含まれません。
    Java3D が core API ではなく extention であることが理由です。
    将来的には Java3D もオープンソースとする考えはあることが
    Java3D 開発メンバーから知らされています。

-------------------------------------------------------------------------------
[Q] Java3D 関連書籍

    英語版

  ■The Java 3D API Specification 
    著 Kevin Rushforth, Michael Deering, Henry A. Sowizral
    出版社 Addison-Wesley Pub Co,
    $39.95
    ISBN 020-1325764
    http://java.sun.com/docs/books/java3d/

  ■Graphics programming for Java
    ???

    日本語版
 
  ■The Java 3D API 仕様 (日本語版)
    著 Kevin Rushforth, Michael Deering, Henry A. Sowizral 
    翻訳 竹内里佳
    監修 安藤幸央
    出版社: 株式会社アスキー
    価格: 6400 円(税抜)
    ISBN 4-7561-3017-8
    http://www.ascii.co.jp/books/detail/4-7561/4-7561-3017-8.html

-------------------------------------------------------------------------------
以上。

 //  Yukio Andoh  andoh@xxxxxxxxxx andoh@xxxxxxxxxx  //
//   www.opengl.com/andoh/  tech.webcity.ne.jp/~andoh/    //               TT