Go to Contents Go to Java Page
J2SE 1.5 虎の穴
 
 

グラフィックが遅いとお嘆きだったあなたに - OpenGL のサポート

 
 
Tiger 遅かったのは
 
 

Windows ではグラフィックの描画に DirectDraw が使用されていたので、それほど遅いと感じることはなかったと思いますが (DirectDraw を使うことに起因するバグもありましたが...)、Solaris や Linux では DirectDraw に対応するようなグラフィックライブラリはサポートされていませんでした。

Tiger では満を持して OpenGL がサポートされるようになりました。でも、デフォルトではオフのままです。

OpenGL を使用するには java のオプションとして

    -Dsun.java2d.opengl=true

を指定するだけです。また、OpenGL に関するメッセージを表示させるには、

    -Dsun.java2d.opengl=True

とします。大文字と小文字だけの違いなんてちょっと分かりにくいですね。

サポートしている OpenGL は Solaris/Linux の場合

  • OpenGL 1.2 以上
  • GLX 1.3 以上

Windows の場合は

  • OpenGL 1.2 以上
  • ARB 拡張 (WGL_ARB_pbuffer、WGL_ARB_render_texture、WGL_ARB_pixel_format) が使用できること

です。お使いのグラフィックカードとドライバを今一度確認してみてください。

 
 
Tiger どのくらい早くなったのだろうか
 
 

せっかくなので試してみましょう。

ためしに実行してみるのは JDK に付属している Java2D のデモです。このデモは右側のパネルに Performance があって、fps などが表示されるようになっているのでこの値を OpenGL を使った場合と使わない場合で比べてみます。

使用したのは Pentium IV 1.6GHz、NVIDIA GoForce FX 4、Memory 512MB のマシンで、Fedra Core 2 を使用しています。

Java2Demo では、アニメーションのディレイを調整できるようになっていますが、これを 0ms として実行しました。

さて、結果なんですが、あまり思わしくありませんでした。OpenGL を使うことで早くなるところもあったのですが、逆に遅くなってしまうところもありました。特に Java2Demo の初期画面 (Java2D タブで表示されるもの) はむちゃくちゃ遅くなってしまいました。

また、速度にムラがあるといえばいいのでしょうか、急に早くなったり遅くなったりを繰り返すのです。

こう見ていると、まだ調整が十分に行われていないのではと感じます。

 

 
 
Tiger おわりに
 
 

やっと OpenGL がサポートされました。ちょっとだけ興味があるのが、OpenGL のバインディングをどのように行っているかです。JOGL は使っていないようですが。

私が使用している環境ではあまり効果はありませんでしたが、対応するグラフィックカードを持っている人はぜひ一度試してみてくださいね。もしかすると劇的に早くなっているかもしれません ;-)

 

(Oct. 2004)

 
 
Go to Contents Go to Java Page