[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WebGLとは? わかりやすく解説

WebGL

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/07/24 16:41 UTC 版)

WebGL
作者 Mozilla Foundation
開発元 Khronos WebGL Working Group
初版 2011年3月3日 (11年前) (2011-03-03)[1]
最新版
2.0 / 2017年1月17日 (5年前) (2017-01-17)
プラットフォーム Cross-platform
対応言語 English
種別 API
公式サイト www.khronos.org/webgl/
テンプレートを表示

WebGL(ウェブジーエル、Web Graphics Libraryの略称)は、互換性のある任意のウェブブラウザ上で、プラグインを使用せずにインタラクティブな2次元および3次元のコンピュータグラフィックをレンダリングするためのJavaScript APIである[2]。WebGLはウェブ標準に完全に統合されているため、ウェブページのcanvas要素上でGPUアクセラレータを使用した物理シミュレーション、画像処理、画像効果などを表現できる。WebGLの要素は、外側のHTMLと組み合わせたり、ページやページの背景の他のパーツと合成して使用できる[3]

WebGLのプログラムは、JavaScriptで書かれた制御コードと、CC++に似た構文のOpenGL ES Shading Language(GLSL ES)で書かれたシェーダーのコードから作られ、コンピューターのGPUで実行される。WebGLは非営利団体Khronos Groupが設計とメンテナンスを行っている。

WebGL 1.0は、ブラウザ上で利用できるOpenGL ES 2.0の派生規格であるが、細部に違いがある[4]。WebGL 2.0は、ブラウザ上で利用できるOpenGL ES 3.0の派生規格であるが、細部に違いがある[5]

対応ブラウザ

WebGLに対応するウェブブラウザは以下の通り。

ウェブブラウザのWebGL機能対応度を示すデモの動作リストが存在する[7]。主要なブラウザの最新版は全てWebGL 1.0に対応している。WebGL 1.0を利用するには、グラフィックスハードウェア (GPU) がWebGL 1.0 (OpenGL ES 2.0相当の機能) をサポートしている必要があるが、後述するように、バックエンドにハードウェアベンダーが提供するOpenGL/OpenGL ESレイヤーを利用するかどうかは問わない。WebGLは実装形態を問わないAPI規格にすぎないからである。また、後述のセキュリティ上の問題から GL_ARB_robustness (OpenGL 3.2) もしくは GL_EXT_robustness (OpenGL ES 2.0) の対応が必要である。

WebGL 2.0のサポートには、Microsoft Windows上ではDirectX 11が、macOS上ではOpenGL 4.1が、Linux上ではOpenGL 3.3といくつかの拡張が、そしてその他のプラットフォームではOpenGL ES 3.0が必要である[8]

なおWindows版のChromeおよびFirefoxはハードウェアベンダーが提供しているWindows用のOpenGLドライバーを用いるのではなく、ANGLE英語版[9]を経由することで、内部的にDirect3Dを使ってWebGLを実現している[10]

ユーザーによる利用設定が必要になってしまい、またハードウェアアクセラレーションの恩恵は得られない方法だが、Mesa Off-screen rendering extension (libosmesa6) などを用いれば、ソフトウェアレンダリングによるWebGLの実行も実現可能である。

前述のANGLEや、ソフトウェアレンダリングによるWebGLを利用する場合などを除き、OpenGL 3.2をフルサポートしないハードウェアおよびデバイスドライバ環境では、ユーザーの自己責任のもと、ウェブブラウザ側で強制的に利用する設定をしないとWebGLを利用できない場合がある。

各ブラウザには、WebGLの動作がサポートされないGPUブロックリストが定められている。どのようなOSあるいはブラウザでWebGLを実行するにしても、ブロックリストに載っているGPUを使用する環境では、ユーザーの自己責任においてWebGLを強制的に有効にする設定をしなければWebGLは動作しない。

型付き配列

Firefoxなどでは、JavaScriptで型付き配列が使える[11]。型付き配列により生のバイナリデータの操作が容易になり、WebGLにデータを渡す際のパフォーマンスが向上する。

歴史

WebGLはMozillaのCanvas 3Dの実験から始まった。Mozillaは2006年に最初のCanvas 3Dのプロトタイプのデモンストレーションをした。2007年末に、Mozilla[12]とOpera[13]がそれぞれ別々の独自の実装をした。2009年初頭に、MozillaとKhronosがWebGLワーキンググループを始めた。WebGLワーキンググループはAppleGoogleMozillaOperaを含んでいる。

セキュリティの懸念

2011年5月9日、WebGLに深刻なセキュリティホールが指摘された[14]。問題点は以下の2点。現在は解決済み。

  • サービス拒否 (DoS) 攻撃 - WebGLでは制御構造をサポートするプログラマブルシェーダーを使えるが、GPU自体にバグなどがあると、OS全体をクラッシュさせたり、無限ループなどでデバイスドライバの応答を停止させるシェーダープログラムを実行させることができてしまう。
  • クロスドメイン画像盗取 - Cross-Origin Resource Sharing に未対応で、他のドメインで使われている画像を取得できた

規格そのものに脆弱性が存在するため、米国のセキュリティ機関US-CERTはブラウザでWebGLを無効にするよう勧告していた[15]

Firefox 4 と Chrome 12 は標準状態でWebGLが有効になっており、セキュリティ問題を防ぐには手動でWebGLを無効にする必要があった。その後、Chrome 13 ではクロスドメイン問題が修正され、Firefox 5 ではクロスドメインは無効になったが、Firefox 8 から Cross-Origin Resource Sharing が利用可能になった。

DoS攻撃の方は、GL_ARB_robustness[16](OpenGL 3.2) または GL_EXT_robustness[17](OpenGL ES 2.0) を利用できるウェブブラウザに制限することで解決した[18][19]

ライブラリ

PixiJSThree.js、C3DL、WebGLU など、WebGLを使ったライブラリが開発されている。

脚注

[脚注の使い方]

注釈

  1. ^ サムソンやHTCなどの一部の端末では 4.x から対応している。またAndroid 4.x の環境で「メニューボタン」の「設定」から「Labs」から「WebGL」のチェックボックスを「オン」にすることでWebGLを有効化できる場合があるが、Labsの名の通り実験機能である。
  2. ^ スマートフォンタブレットなどの端末の製造メーカー・機種、GPUの製造メーカー・機種、グラフィックスデバイスドライバの開発元およびバージョンなどによっては、Google Chrome for AndroidのGPUブラックリストに含まれているためWebGLが動作しない場合がある。この場合、ユーザーの自己責任となるが、Google Chrome for Androidにて「chrome://flags」にアクセスして「ソフトウェア レンダリング リストをオーバーライド」を有効化し、「WebGL を無効にする」を無効化し、そして「今すぐ再起動」することでコンテキスト「webgl」または「experimental-webgl」でWebGLを動作させることが可能となる。

出典

関連項目

外部リンク


WebGL

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/16 22:23 UTC 版)

Internet Explorer 11」の記事における「WebGL」の解説

マイクロソフトは WebGL の安全性疑問持ち当初実装見送った経緯があるが、Internet Explorer 11 で WebGL の実装行った2014年8月Internet Explorer累積的なセキュリティ更新プログラム (KB2990946) では、レンダラー更新が行われ、機能強化パフォーマンス向上が行われた。

※この「WebGL」の解説は、「Internet Explorer 11」の解説の一部です。
「WebGL」を含む「Internet Explorer 11」の記事については、「Internet Explorer 11」の概要を参照ください。

ウィキペディア小見出し辞書の「WebGL」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

「WebGL」の関連用語

WebGLのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



WebGLのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのWebGL (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのInternet Explorer 11 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS