1.3 の新機能


Java3D 1.3 の新機能についての概要です。

新機能について / 新機能 / 戻る / トップページ


新機能について

1.3 の新機能についての概要です。 β2 からの仕様の変更はないようです。当然、バグ修正はされています。
 
バージョン 1.2 からの変更点は少なく、マイナーリリースとの位置付けです。 とはいえ、不具合修正を中心に細かな使い勝手の向上がされています。 シーングラフをファイルに読み書きできるユーティリティークラス (com.sun.j3d.utils.scenegraph.io パッケージ) が追加されている 点は嬉しい改良点です。
 
原文は Java 3D(TM) API - Current Releases/Specification From Sun に書かれています (英語)。

新機能

バージョン 1.2 から 1.3 になり、追加・変更された API 仕様についてです。
 
新しいレンダリング機能
 
view ごとの物体指定
ViewSpecificGroup クラスが追加されました。 この Group の子ノードは指定された View の元においてのみ見ることができます。
 
背景画像のスケール
Background ノードで画像の伸縮指定を行うことができるようになりました。
 
Background 形状の意味合いの変更
Background ノードに設定する形状 (BranchGroup) の扱いが 以下のように変更されました。 ViewSpecificGroup、OrientedShape3D ノードは含まれてはいけない。 Light、Fog ノードは含んでも良いが、 その影響範囲は外部のノードには及ぼさず、 また BranchGroup 内部全体に行き届くこと。 上記制約を違反した場合は IllegalSceneGraphException 例外が投げられる。 picking、collision はこれらノードは扱わない。
 
Behavior の同期
Behavior にその動作間隔を取得・設定するメソッドが追加されました。
 
大きさ固定の OrientedShape3D
OrientedShape3D クラスに大きさを固定する (透視投影に影響されない) 機能が追加されました。
 
順番指定可能な OrderedGroup
OrderedGroup クラスで、その子ノードの処理順を 自由に指定することができるようになりました。 これまでは追加順 (インデックス順) 固定でした。
 
新しい幾何・テクスチャ機能
 
Raster の書き込み先オフセット
Raster の書き込み先のピクセルにオフセット値を 指定することができるようになりました。 またそれに伴い、読み込み元のピクセルのオフセット値指定の メソッドの名称が分かりやすく変更されました。
 
テクスチャの LOD 制御
ミップマップを使用したテクスチャの LOD (level-of-detail) の値を細かく制御できるようになりました。 ただし、Java3D の下位の 3D API の実装状況に依存する為、 すべてのプラットフォームで使用可能とは限りません。
 
ImageComponent の更新
ImageComponent の一部を切り出した画像の取得や ImageComponent の書き換えができるようになりました。
 
テクスチャ境界
テクスチャの境界領域の幅の指定、新しい CLAMP 機能の追加がされました。 ただし、Java3D の下位の 3D API の実装状況に依存する為、 すべてのプラットフォームで使用可能とは限りません。
 
テクスチャ合成
テクスチャ合成に様々な式を指定することができるようになりました。 ただし、Java3D の下位の 3D API の実装状況に依存する為、 すべてのプラットフォームで使用可能とは限りません。
 
Cube 環境マッピング
Cube 環境マッピングが可能になりました。 ただし、Java3D の下位の 3D API の実装状況に依存する為、 すべてのプラットフォームで使用可能とは限りません。
 
テクスチャフィルタの追加
テクスチャフィルタの種類が増えました。
 
新しい見掛けの機能
 
透過物体の Depth ソートの切り替え
透過する物体を描画するために、 物体の描画順が Java3D によって制御されていますが、 View オブジェクトでこの描画順の並び替え (Depth ソート) の有無を制御できるようになりました。
 
Material の対象色の指定
ColorInterpolator などで制御の対象となる色の種類 (diffuse、specular など) を指定するメソッドが Material クラスに追加されました。
 
新しい音響機能
 
パラメータの追加
リバーブや環境パラメータが追加されました。
 
その他の新機能
 
Vecmath パッケージの Cloneable 化
Vecmath パッケージに含まれるクラスが全て Cloneable インターフェースを実装し、 clone() メソッドが使用できるようになりました。
 
Alpha クラスの一時停止
Alpha オブジェクトを一時停止させることができるようになりました。
 
グローバルプロパティー
VirtualUniverse クラスにクラスメソッド getProperties() が追加されました。 Java3D の下位の 3D API の実装状況に依存する機能が 現在のプラットフォームで使用可能かどうかを調べる為などに使います。
 
J3DGraphics2D クラスの描画&フラッシュ
J3DGraphics2D クラスに画像の描画と同時にフラッシュを行う メソッドが追加されました。
 
Capability bits の更新頻度
Java3D の最適化のヒントとしてアプリケーションから Capability bits の更新頻度を通知することができるようになりました。 前もって頻繁に Capability bits を頻繁に更新するか どうかを指定しておけば、その情報を使って Java3D が最適化を してくれる可能性があります。
 
きれいになった API
 
Font3D クラスの親クラス
Font3D クラスの親クラスが NodeComponent クラスに変更されました。
 
IllegalSceneGraphException 例外
IllegalSharingException、SceneGraphCycleException などの例外の親クラスとして IllegalSceneGraphException クラスが新設されました。
 
TransformInterpolator クラスの新設
TransformGroup の値を変化させていく Interpolator の親クラスとして TransformInterpolator クラスが新設されました。 このクラスは PathInterpolator クラス、PositionInterpolator クラス、 RotationInterpolator クラス、ScaleInterpolator クラスなどの 親クラスとなり、これら子クラスのメソッドも継承を考慮して 一部名称が変えられました。
 
交差判定メソッド
Shape3D、Morph クラスに PickShape オブジェクトに対しての 交差点への距離を取得するメソッドが追加されました。
 
get メソッドの追加
set メソッドがありながら get メソッドがなかった各クラスのメソッドに、 get メソッドが追加されました。
 
Capability Bit の追加
RenderingAttributes.ALLOW_DEPTH_ENABLE_WRITE、 TexCoordGeneration.ALLOW_PLANE_WRITE の Capability Bit が追加されました。
 
Collection 風味なメソッドの追加
Java3D では SceneGraph を構成するオブジェクトが 他のオブジェクトの集まりへの参照を持っている事が多々あります。 それらに対して、指定したオブジェクトのインデックスを得るメソッド、 指定したオブジェクトを取り除くメソッド、 全てのオブジェクトを取り除くメソッドが追加されました。
 
NodeComponent の共有
immediate mode、背景 SceneGraph、通常の SceneGraph において、 NodeComponent が共有できるように条件が緩和されました。
 
コンパイルされた Group の階層スコープの厳格化
コンパイルされた Group に対して、その保持している 階層スコープの値を変更する際、 capability bit を設定しなくても変更ができてしまっていました。 この点を厳しくする為に RestrictedAccessException 例外が 正しく投げられるようになりました。
 
Sensor Hotspot の意味
Sensor クラスのクラスメソッド setHotspot の意味が これまであいまいだったため、仕様と実装が正しくされました。
 
ユーティリティークラス
 
シーングラフのファイル化
シーングラフをファイルに読み書きできるユーティリティークラス (com.sun.j3d.utils.scenegraph.io パッケージ) が追加されました。
 
GeometryInfo のマルチテクスチャ対応
GeometryInfo クラスがマルチプルテクスチャに対応しました。
 
obj ローダーの URL サポート
obj ファイルローダーが URL 指定をサポートしました。
 
高解像度インターバルタイマー
高解像度のインターバルタイマーを実現するクラス (com.sun.j3d.utils.timer パッケージ) が追加されました。
 
ConfiguredUniverse クラス
多数の View オブジェクトを持つ SimpleUniverse クラスの拡張、 ConfiguredUniverse クラスが追加されました。 使用には JDK 1.4 以降が必要です。
 
仮想スクリーン環境でのマルチスクリーン
GraphicsConfigTemplate3D クラスで単一の仮想スクリーンを 複数の物理的なマルチスクリーンに対応させることが できるようになりました。

戻る