強火で進め

このブログではプログラム関連の記事を中心に書いてます。

WebGLのサンプルが動作しなくなった

最近、MacBookに買い換えて改めてWebGLのサンプルをテストしたところAirでテストしたときより正しく動作するサンプルが減っていました。

これは変だと詳しく調べたところ色々と関数名などの変更が行われた様です。そりゃ、動かないですよね。
一部の例を挙げると以下になります。

canvas に getContext するときの引数に変更。

var gl = canvas.getContext("experimental-webgl");

ここの部分は experimental (実験、試験的)と付いてるし、実際のリリース時には webgl か 3d 辺りに変更されるのではないかと見ています。

・関数名が変更
頭に Canvas と付いていたものなどがWebGLに変わった様です。

getShaderi → getShaderParameter
getProgrami → getProgramParameter
CanvasFloatArray → WebGLFloatArray
CanvasUnsignedByteArray → WebGLUnsignedByteArray

そのため今まで紹介してきたサンプルなどはほとんど動作しなくなっています。

khronosがまとめている以下のwikiに掲載されているデモであれば最新のブラウザ(開発版)に対応したサンプルに成っている様です。

最新のブラウザでサンプルを動作させたい方はこちらを利用して下さい。

Demo Repository - WebGL Public Wiki
http://www.khronos.org/webgl/wiki/Demo_Repository

(2010/02/27 追記)
※以下で紹介するものはすべて開発版であり、また新しい技術が実装されたバージョンです。セキュリティの懸念などもありますのであくまでテスト用として使用し、普段のサイト閲覧には一般向けにリリースされているものを使用する様にしましょう。

Macの最新のブラウザ(開発版)でWebGLのサンプルをテストする方法

Chrome

【DL先】
http://build.chromium.org/buildbot/continuous/mac/LATEST/
WebGLを有効にする方法】
ターミナルから引数 –no-sandbox –enable-webgl で起動。
Chromium.app/Contents/MacOS/Chromium –no-sandbox –enable-webgl

Firefox

【DL先】
http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/
WebGLを有効にする方法】
1. アドレスバーに about:config を入力。
2. webgl.enabled_for_all_sites を検索し、 true に設定。

Safari

【DL先】
http://nightly.webkit.org/

WebGLを有効にする方法】
ターミナルで以下を入力。
defaults write com.apple.Safari WebKitWebGLEnabled -bool YES