Java SE 6: 新しいJava2DレンダリングエンジンとJOGLの統合
2005/09/15
来年の夏頃にリリースされる予定のJava SE 6(開発コードMustang)では、開発の目標の1つとしてデスクトップ環境の強化が掲げられている。そのうちのJava2D APIに関する拡張として、Java2DにおけるOpenGLレンダリングの高速化がある。
Mustangでは、Java2DにおけるOpenGLのレンダリングを高速化するためにパイプライン処理の実装が見直される。既存のレンダリングエンジンでは複数スレッドによるレンダリングを並行してネイティブのグラフィックライブラリで処理させるという実装方法が採用されていた。これに対してMustangではシングルスレッドレンダリングを採用、複数のスレッドからのレンダリング要求をパイプラインによって管理し、効率よくグラフィックライブラリに渡すようになる。このシングルスレッドレンダリングの実装はMustangの開発版リリースbuild 27ですでに実装されており、J2SE 5.0の実装に対して大幅なパフォーマンスの向上が確認されている。
一方、JavaプログラムでOpenGLを使うために古くから利用されているAPIとしてJOGL(Java Bindings for OpenGL)がある。JOGLはJSR 231で標準化されているAPIで、JavaコードからOpenGLネイティブライブラリへのバインディングを提供する。JOGLではGLJPanelというOpenGLに対応した軽量コンポーネントを提供しており、これを使用することでSwingアプリケーション内でOpenGLによる3Dグラフィックスの描画が可能になる。しかし、既存の実装ではこのGLJPanelを用いたレンダリングは非常にパフォーマンスが悪いという問題があった。
今月8日に公開されたMustang build 51において、JOGLのGLJPanelから、新しいシングルスレッドレンダリングによる実装を利用するための機能が実装された。これによってGLJPanelのパフォーマンスは大幅に向上し、次のような効果が得られるという。
- OpenGLレンダリング上でのSwingコンポーネントのオーバレイ
- 様々なSwingウィジット上での3Dグラフィックスの利用
- Java2Dレンダリング上での3D OpenGLグラフィックスの描画
- OpenGLレンダリング上でのJava2Dグラフィックスの描画
なお、JOGLを利用したデモプログラムはjogl-demosプロジェクトサイト上で公開されている。
個人向けPCの性能が向上したことで、デスクトップアプリケーションにも充実した表現能力が求められるようになってきた。このことはLG3D(Project Looking Glass)などへの関心の高さにも現れている。今後もMustangにおけるデスクトップJavaへの取り組みに注目していきたい。
関連記事
- 【レポート】リリースまで1年、Java SE 6"Mustang"の概要を一足早く把握する[2005/8/16]
- 3つの次期J2EEテクノロジ、メンテナンスドラフトへ[2005/8/29]
- JavaOneに見るJava EE 5 - Persistence APIがEJBから独立[2005/6/29]
ヘッドライン
- 【コラム】FileMaker×PHPで作る、簡単・便利なWebアプリ 第54回 FX.php/APIの違い - レコード登録(1)[09:00 3/17]プログラミング
- 【連載】セキュリティ・性能・運用―データセンターの課題解決のための全方位対策 第2回 自社開発だからできる500万円台で40Gbpsの性能のデータセンタークラスUTM[08:00 3/17]セキュリティ
- STMicro、携帯機器向け光学ジョイスティック用センサを発表[07:00 3/17]エレクトロニクス
- 芝工大、携帯可能な1人乗りモビリティのプロトタイプを開発[06:00 3/17]エレクトロニクス
- ADI、20V降圧DC/DC非同期式レギュレータ2製品を発表[06:00 3/17]エレクトロニクス
- ADI、コンスタントオンタイム同期式降圧スイッチングコントローラを発表[20:12 3/16]エレクトロニクス
- Freescale、車載ネットワークのさまざまな課題に対応する次世代SBCを発表[20:01 3/16]エレクトロニクス
- DOWA、波長が300〜350nmの深紫外LEDの実用化に成功[19:36 3/16]エレクトロニクス
- エプソン、4chアナログ入力の車載向けカメラインタフェースICを発表[18:58 3/16]エレクトロニクス
- ルネサス エレクトロニクスの組織体制と人事が決定[18:44 3/16]エレクトロニクス






