FirefoxのWebGLのサンプルが公開されたので動かしてみた
(11/03/22 追記)
WebGLのサンプルをお探しの方はこちら。
(10/02/25 追記)
WebGLの関数名などの変更によりブラウザのバージョンによっては動作しない可能性があります。
WebGLのサンプルが動作しなくなった - 強火で進め
http://d.hatena.ne.jp/nakamura001/20100224/1267028558
前回のエントリーでFirefoxにWebGLが実装されたと紹介したのですが前回は残念ながら動作しませんでした。
Firefox Nightly BuildsでFirefoxにもWebGLが実装された? - 強火で進め
http://d.hatena.ne.jp/nakamura001/20090920/1253417113
今回、こちらでサンプルが公開されたので早速試してみました。
WebGL Samples/Demos and other bits at Vladimir Vukićević
http://blog.vlad1.com/2009/09/21/webgl-samples/
そのままではすんなり動作せず、それぞれのOSで以下の対応が必要でしたが無事動作しました。
※こちらのFirefoxはあくまで開発版であり、また新しい技術が実装されたバージョンです。セキュリティの懸念などもありますのであくまでテスト用として使用し、普段のサイト閲覧にはリリース版のFirefoxなどを使用する様にしましょう。
Windowsの場合
・Firefox(DLしてきた開発版)のバージョンアップを行い、最新版にする。
・Mesa software OpenGLのインストール(※手順は以下を参照)
1. ブログにて指定の有る、 webgl-mesa-751.zip をDLする。
2. c:\temp を作成し、そこに 1. のファイルから解凍した osmesa32.dll を置く。
3. アドレスバーに about:config を入力。表示されたページ内の検索欄に「webgl.」と入力し、検索する。
4. webgl.osmesalib を探し、無い場合はデータ一覧部分を右クリックし、「新規作成」→「文字列」をクリック。
最初のダイアログに webgl.osmesalib を、次のダイアログに C:\temp\osmesa32.dll を入力。
既に webgl.osmesalib が存在する場合は値(Value)の部分に C:\temp\osmesa32.dll を入力。
※この設定で上手くいかない場合は webgl.software_rendering を trueに切り替えてテストしてみて下さい。
WebKitのWebGLとの互換性について
サンプルを確認したところ以下の様に先に "moz-webgl" で getContext を行い、失敗した場合は "webkit-3d" で実行するという記述になっています。
var canvas = document.getElementById("canvas"); var gl = null; try { if (!gl) gl = canvas.getContext("moz-webgl"); } catch (e) { } try { if (!gl) gl = canvas.getContext("webkit-3d"); } catch (e) { } if (!gl) { alert("Can't find a WebGL context; is it enabled?"); return; }
そのため現状では以下の様に getContext の処理を分ける必要が有る様です
WebKit → canvas.getContext("webkit-3d")
Firefox → canvas.getContext("moz-webgl")
しかし、この様に処理が分けられていたとしても現状では互換性が無い様です。
のいずれも残念ながら実行されませんでした。
まぁ、まだ開発段階なので getContext の問題も含めてこれから改善されるだとうと思いながら一般リリースされるのを楽しみに待つとします。