[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