1.2 β1 の新機能
Java3D 1.2 β1 の新機能についての概要です。
承認 /
条件付き /
提案 /
戻る /
トップページ
承認された API
- 承認された API です。
ほぼ確実に Java3D 1.2 に組みこまれます。
-
-
Deprecated API の除去
- Java3D 1.1 で "Deprecated" 表記されていた
メソッド・フィールド・コンストラクタが除去されます。
-
-
CloneTree の拡張
- NodeReferenceTable を使った CloneTree ができるようになりました。
-
-
vecmath のコンストラクタの追加
- vecmath パッケージのクラス (4 次元のクラス)
のコンストラクタが増やされて、使いやすくなりました。
-
-
monoscopicViewPolicy 操作のメソッドの引越し
- setMonoscopicViewPolicy(int policy), getMonoscopicViewPolicy()
メソッドがより適切な意味となるように
View クラスから Canvas3D クラスに移りました。
-
-
Bounds クラスの hash 表対応
- Bounds オブジェクトを Hashtable に格納できるように
equals(Object obj), hashCode() メソッドが実装されました。
-
-
Font3D の細かさ指定
- Font3D ノードの細かさ (?) を指定できるようになりました。
-
-
Group ノードの意味あいの変更
- 子ノードとして null が扱えるようになりました。
Switch ノードのインデックス指定がしやすくなり、
予約済みのインデックスを null で表現することができます。
また、インデックス例外があったときに
ArrayIndexOutOfBoundsException 例外が投げられることがありましたが、
IndexOutOfBoundsException 例外が投げられるように修正されました。
-
-
Alpha の親クラスの変更
- Alpha クラスはそれまで Object クラスのサブクラスでしたが、
NodeComponent クラスのサブクラスに修正されました。
条件付で承認された API
- 条件付で承認された API です。
恐らくは Java3D 1.2 に組みこまれるものと思われます。
-
-
複数の Geometry からなる Shape3D
- Shape3D ノードはいままで
1 つの Geometry から構成されていましたが、
複数の Geometry からなる Shape3D ノードも指定できるようになります。
-
-
Geometry 情報への参照渡し
- Geometry オブジェクトを構成する頂点座標や色情報を
設定する際に参照渡しで引き渡すことが出来るようになりました。
これにより動的な幾何情報が扱い易くなります。
-
-
Texture の機能拡張
- Texture オブジェクトを構成する画像に関しても
参照渡しで設定することが出来るようになりました。
これによりテクスチャ画像が動的に変更できます。
テクスチャ座標の Y 軸方向を反転すること
(画像左下を原点にすること) も出来るようになりました。
-
-
自由な直線パターン
- LineAttributes オブジェクトで自由な直線パターンの設定が
出来るようになりました。
これは Java3D の下位ライブラリである
OpenGL や Direct3D がこの機能をサポートしているため、
出来るようにしたそうです。
-
-
斜面方向のポリゴンオフセット
- 斜面方向のポリゴンオフセットを設定できるようになりました。
-
-
見えない物体
- 物体を見えなくすることができます。
これまでも Switch ノードを利用したり
Scenegraph から取り外すことで物体を消すことが出来ましたが、
この場合の物体を消すということはレンダリングされないことを意味し、
その他の処理の対象にはなります。
つまり、picking や衝突判定の対象になりながらも
表示されない物体が扱えるわけです。
また View オブジェクトにも同様の設定項目があり、
この場合は全ての物体がレンダリング対象からはずれます。
-
-
αブレンディング関数
- αブレンディング関数の設定が
RenderingAttributes オブジェクトを使って出来るようになりました。
またラスタオペレーションの設定も出来るようになりました。
-
-
頂点の色の無視
- 頂点の色を無視する設定が出来るようになりました。
-
-
AlternateAppearance
- ハイライトの実現のため、
新たに AlternateAppearance ノードが追加されました。
このノードの Appearance の設定を使うようにするメソッドが
Shape3D, Morph クラスに追加されました。
-
-
MediaContainer の対象の拡張
- MediaContainer クラスで InputStream も扱えるようになりました。
それに伴いメソッド名も変更が加えられました。
-
-
AuralAttributes の反響設定
- AuralAttributes クラスの反響設定で、
反響範囲と反響遅延の違いを明確にするため
メソッドを変えました。
-
-
PathInterpolator の経路の設定
- PathInterpolator の経路の設定がメソッドで出来るようになりました。
いままではコンストラクタでのみの設定でした。
-
-
ImagePlate -> pixel 座標の変換
- ImagePlate 上での座標から pixel 座標上での座標へ変換する
メソッドが Canvas3D クラスに追加されました。
-
-
Immediate Mode のバッファ制御
- Immediate Mode においてフロントバッファレンダリングが
可能となり、またステレオの制御が可能となりました。
-
-
Locale の削除
- VirtualUniverse クラスに Locale を削除するメソッドが
追加されました。
提案された API
- 提案された API です。
β1 では未だに実装されていないものもあります。
The Java Community Process へのフィードバックによって
変更される可能性があります。
-
-
オフスクリーンレンダリング
- レンダリング対象を ImageComponent2D オブジェクトに
変更することが出来るメソッドが Canvas3D クラスに追加されました。
これでオフスクリーンレンダリングが可能になりました。
-
-
OrientedShape3D クラス
- 視点に対して常に同じ向きを見せる Shape3D である
OrientedShape3D クラスが追加されました。
behavior である Billboard とは異なり、
OrientedShape3D はノードなので
SharedGroup ノードの下にぶら下げたりできます。
-
-
Canvas3D 用の Graphics2D
- Canvas3D オブジェクトに Java2D, AWT 描画するための
Graphics2D クラスが用意されました。
これで Canvas3D に 2D の描画が出来るようになりました。
-
-
マルチプル・テクスチャ
- マルチプル・テクスチャがサポートされました。
Appearance オブジェクトには Texture オブジェクトではなく
新たに追加された TextureUnitState オブジェクトの配列を設定し、
各テクスチャステージの設定を
TextureUnitState オブジェクトに設定するようになっています。
-
-
テクスチャカラーテーブル
- テクスチャカラーテーブルの機能が追加されました。
TextureAttributes オブジェクトに設定します。
-
-
CompressedGeometryBounds
- Java3D の内部で CompressedGeometry の Bounds を表現するための
CompressedGeometryHeader クラスが追加されました。
-
-
クリッピングノード
- クリッピングするための ModelClip ノードが追加されました。
Fog ノードのように Scenegraph にぶら下げることで機能します。
6 枚の平面でクリッピング領域を表現します。
-
-
int 型の vecmath クラス
- Tuple3i, Tuple4i, Point3i, Point4i の 4 つの vecmath クラスが
新たに作られました。
いずれも int 型の要素を持っています。
-
-
vecmath の色クラスと Color クラスの間の変換
- vecmath の色クラスである
Color3b, Color3f, Color4b, Color4f クラスと
java.awt.Color クラスの間の変換が出来るように
vecmath の色クラスに
コンストラクタやメソッドが追加されました。
-
-
Canvas3D のプロパティー
- Canvas3D からプロパティーを取得するメソッドができました。
-
-
新しい PickShape クラス
- PickShape クラスに新たに円錐形と円柱形のクラスが追加されました。
-
-
ImageComponent の RenderedImage 対応
- ImageComponent クラスは BufferedImage オブジェクトだけでなく
RenderedImage オブジェクトも受け入れるようになりました
(BufferedImage クラスは RenderedImage インターフェースを
実装しています)。
javax.media.volumeimage.RenderedVolumeImage
(このパッケージは JAI や Java3D で使われることが提案されており、
対応する可能性があります)
オブジェクト (ボリューム画像情報を保持しています)
を ImageComponent3D クラスが受け入れられるようにもなります。
-
-
新しいビューモデル
- マルチスクリーンやヘッドトラック環境においてより使いやすい
新しいビューモデルが追加されました。
-
-
レンダリング制御
- View クラスにレンダリング制御をするためのメソッドが増やされました。
1 フレームの最小単位時間の設定やリペイントができます。
また、WakeupOnElapsedFrames クラスに
連続するレンダリングを強制することなく毎フレーム
呼ばれるように設定できるようになりました。
-
-
Java3D のスレッド制御
- Java3D そのもののスレッドのプライオリティーを
VirtualUniverse オブジェクトで変更出来るようになりました。
-
-
GraphicsContext3D の flush
- GraphicsContext3D オブジェクトを flush できるようになりました。
-
-
get メソッドの追加
- set メソッドに対応する get メソッドがないクラスについての
幾つかは get メソッドが追加されました。
-
-
nonfinal 化
- javax.media.j3d パッケージの
public で final でないクラスのメソッドの大部分の
final 属性がはずされました。
ただし、それらのメソッドをオーバーライドするときは
「super.メソッド名」で親クラスのそのメソッドを呼ばないと
正常には動作しないので注意が必要です。
-
-
デフォルト画面サイズの変更
- デフォルトの物理画面サイズが変更されました。
戻る