Mozilla Flux

Mozilla関係の情報に特化したブログです。

Firefox開発版でもWebGLの初期実装が完了

Mozilla Links『Firefox gets WebGL support: 3D hardware acceleration』などで既報だが、FirefoxのTrunk Nightly(Minefield/3.7a1pre)でWebGLがサポートされるようになった。といっても、まだデフォルトでオンにはなっておらず、about:configからwebgl.enabled_for_all_sitesをtrueに設定する必要がある。

Vladimir Vukićević氏が『WebGL in Firefox Nightly Builds』で説明しているように、WebGLはMozillaがCanvas 3Dと呼んで実験していたものの発展型だ。Canvas 3Dは、HTML5のCanvasを通じてWebブラウザからOpenGL ESにアクセスするもので、3Dグラフィックスのハードウェア・アクセラレーションが可能になる。それを発展させたWebGLをブラウザがネイティブサポートし、プラグイン不要となれば、ブラウザの3D処理能力は大きく引き上げられ、デスクトップのレベルにかなり近づく。

WebGLはJavaScriptとの連携が想定されており、大量の3Dデータをスクリプトで操作することによって、柔軟な処理を実現するとみられる(『Keeping up with the Khronos』)。近時のJavaScriptエンジンの発展はめざましく、スピード的にも問題ないとの判断だ。

KhronosグループのWebGLワーキンググループにはAMD、Ericsson、Google、Mozilla、NVIDIAにOpera Softwareといった大手の企業・団体が参加しており、また、WebGLはOpenGLと同様にクロスプラットフォームのAPIでもある。しかも、今後はDirect3DなどOpenGL以外の3D APIにも対応していくという。もろもろの状況から見て、Web上で標準的な地位を確立していく可能性は高いだろう。

強火で進め『WebGLが実装されたWebKitを使ってみた』によれば、WebGLはWebKitレンダリングエンジンにも実装済みのようだ。ただ、ソースからビルドする必要があるとのことで、この点では設定を変更するだけで足りるMinefieldのほうが手軽である。

しかし、残念なことに、同『Firefox Nightly BuildsでFirefoxにもWebGLが実装された?』にもあるとおりWebKitに付属のサンプルがMinefieldで動作しない。筆者の環境でも同様の結果になったので、実装の具合をはっきり確かめるには近々Web上で公開されるというデモを待つほかないのだろうが、標準化されたAPIのはずなのに互換性がないようにも見えるところに一抹の不安が残る。

(09/09/22追記)

強火で進め『FirefoxのWebGLのサンプルが公開されたので動かしてみた』で既報だが、『WebGL Samples/Demos and other bits』でデモページが公開された。

9月21日以降のTrunk Nightlyが必要で、OSにOpenGLドライバがないとグラフィックが表示されない。幸い筆者の環境ではIntel GMA X4500HDがOpenGL 2.1をサポートしているため、ソフトウェアエミュレーション用の設定をしなくても、webgl.enabled_for_all_sitesをtrueにすると動いた。

Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.3a1pre) Gecko/20090921 Minefield/3.7a1pre ID:20090921050209


横方向にぐるっと回転させられるだけだが、プラグインなしに3D画像が現れ、変化していく様を眺めていると、ついにここまで来たかと多少の感慨を覚える。

(09/09/23追記)

Mark Steele『WebGL demos』で新しいデモが二つ紹介されていた。

1.Puls for WebGL[MediumやLargeに変更しようとするとクラッシュする模様]

2.Escher-Droste effect in WebGL