2014年5月24日土曜日

WebGLとは

WebGLとは

WebGLは、Wikipediaによると、「ウェブブラウザで3次元コンピュータグラフィックスを表示させるための標準仕様」と書かれています。

標準仕様なので特定メーカの思惑に左右されずいろいろなWebブラウザ上で、3Dコンテンツを表示させることができます。しかもFlashやSilverlight等のようなプラグインを必要としません。

Windowsでも、Macでも、Linuxでも、タブレットでも、スマホでも同じプログラムで同じ様に動かすことができます。

実際はまだ仕様が策定されて日が浅いこともあり、全てのブラウザで動かせるわけではありませんが、それは時間の経過と共に解決されていくしょう。当初はマイクロソフトもIEはOpenGLをサポートしないとアナウンスしていましたが、IE11でとうとう正式にサポートされました。これで主要なほとんどの最新ブラウザでWebGLがサポートされます。タブレットやスマホでは、まだなかなか厳しい状況ですが、コンテンツが増えていけばメーカもサポートせざるを得ない状況になるでしょう。

現在提供されているWebGLのハージョンは1.0ですが、これは、組み込みシステム向けのOpenGLである、OpenGL ES2.0がもとになっています。スマホで使われているのもOpenGL ESです。本家のOpen GL自体のバージョンは4.3まで進んでいますね。

OpenGL ESは、OpenGLから冗長と思われる機能を削ぎ落としてモバイル端末向けに特化したOpenGLのサブセット版です。そしてWebGLは、OpenGL ESと同等の仕様となっています。機能を削ぎ落としたとはいえ、バッファオブジェクトや、テクスチャ、シェーダー等十分な機能をもっておりほとんどの用途で不足を感じることはないと思います。

このサイトでは、管理人自身の勉強も兼ねて、WebGL関連の話題を扱っていく予定です。

対応ブラウザ

これも、Wikipediaからの引用になりますが、今日時点で以下のブラウザでWebGLが動きます。

PC
ブラウザ 対応状況
Google Chromev8は要設定。v9から標準で有効。
Internet Explorerv11から。
Mozilla Firefoxv4から。
Operav12は要設定。v15から標準で有効。
Safariv5.1から。要設定。

モバイル
ブラウザ/OS 対応状況
BlackBerry 10v10から。
Firefox for MobileMaemoはv1.0から。Androidはv4から。
Google Chrome for Androidv25は要設定。v30から標準で有効。
Internet Explorer Mobilev11から。
Opera Mobilev12から。(Android のみ)
Tizenv1.0から。
AndroidブラウザサムソンやHTCなどの一部の端末で対応。
iOS未対応

今の所iPhoneやiPad、Android端末のほとんどで動かないですが、それ以外は大丈夫そうです。

iPhoneで動かないのは、技術的な問題というより、マーケティング的な理由のような気がします。スマホのコンテンツといえばアプリが主流ですからね。

それから、Safariですが、これは初期状態ではWebGLが動かないので設定が必要になります。以下に手順を載せておきます。

  1. 設定画面を開き、詳細タブにある「メニューバーに"開発"メニューを表示」にチェックがついていない場合、これにチェックをつけてください。
  2. メニューバーに「開発」メニューが表示されるので、その中の「WebGLを有効にする」を選択してチェックをつけます。これで使えるようになるはずです。

Window版のSafariでも同じように「開発」メニューを表示する設定があったのですが、「WebGLを有効にする」のメニューが出てきません。もしかしたらWindows版のSafariでは対応していないかもしれません。

既に多くのサイトでWebGLのコンテンツが作られています。例えば、これはGoogleのサンプルサイトです。

https://code.google.com/p/webglsamples/

自分のブラウザでWebGLが動くかどうかは、これらのサイトで実際にコンテンツが表示されるか試してみることで確認できます。

0 件のコメント:

コメントを投稿