2007年4月8日日曜日

Java3Dをやってみる

Java3Dは、SunからJREと同じように配布されているライブラリであるが、JREやJDKには含まれてはいない。どうやら、大きすぎていっしょにいれなかったようだ。 まずプログラムするには、Java 3D APIへいって、APIをダウンロードしてインストールするわけだが、JDKのバージョンもあわしておく必要があるようなので、ついでに最新のJDKを入れておくのがよいかもしれない。APIドキュメントもダウンロードできるが、オンラインでも見れるので、お好みで入れればいいかも。

APIドキュメントだけでは、途方にくれるだけなのでjava.netのJava3DのWikiにあるJava3DBooksにチュートリアル(英語)があるのでそれを読むか、日本語の書籍も出ているようなのでそれを読めばよいのだが…。

とりあえず、何か動かしたいのであれば、チュートリアルのChapter1に載っているソース(HelloJava3D)を打つか、Java3DにおいてあるExampleを動かしてみるとかでよいかもしれない。

とりあえず、おそらくこの段階でわかっておくことは、Java3Dのすべてのオブジェクトはツリー構造で定義される。3次元オブジェクトをツリー構造で記述することは、普通なことなのであえて説明は不要であるとおもうが。 ツリー構造の根っこにあるのが、VirtualUniverseというものであるのだが、そこに3次元のオブジェクト(ドキュメントではSceneGraphといってる)やそれらを表示するためのCanvas3Dも含まれている。

3次元で表示するためには視線(投射法の概念も含むのでカメラというようだが)を定義するためのViewやViewPlatformなどが必要なのだが、VirtualUniverseやViewとかをひっくるめてSimpleUniverseがやってくれるようだ。 すなわち、表示するためのCanvas3Dを作って、それを渡してSimpleUniverseを作成する。あとは、3次元オブジェクトの類をSimpleUniverseに渡すとCanvas3Dに表示される(もちろん、視線に入るものだけだが)ということである。

オブジェクトの定義は、ドキュメントのHelloJava3DだとColorCubeというものを表示しているが、com.sun.j3d.utils.geometryにあるConeやCylinder、Sphereなどを使えば、とりあえず3Dっぽいものは表示できる。今回はとりあえずなので、Geometryについてはいずれまた…。

0 件のコメント: