WebGL™ブラウザとは何ですか?
WebGL™ブラウザーは、基本的なHyperText Markup Language(HTML)、JavaScript®、およびオンラインのカスケードスタイルシート(CSS)ドキュメントを表示するだけでなく、WebGL™として知られるこれらの仕様の特別なサブセットを解釈するように設計されたプログラムです。 技術的には、WebGL™はスタンドアロン言語ではなく、ブラウザレンダリングエンジンのキャンバス要素を使用してWebGL™コード、グラフィックスハードウェア、ブラウザ間のブリッジを作成するグラフィックスライブラリです。 これにより、WebGL™ブラウザーは、他のタイプのプラグインを使用した場合よりもはるかに高速で、ブラウザー内で個別にコンパイルされたプログラムを使用する場合よりも便利に、高度な3次元(3D)グラフィックスをレンダリングできます。 ほぼすべての主要なWebブラウザーはWebGL™をネイティブにサポートしますが、ネイティブサポートを実装していないブラウザーには通常、必要なHTMLコンポーネントを公開するサードパーティのプラグインがあります。 WebGL™ブラウザーはコンピューターグラフィックスカードに直接アクセスするため、3Dグラフィックスをすばやくレンダリングできますが、これは潜在的に大きなセキュリティホールの原因となり、悪意のあるプログラムがリモートコンピューターで有害なコードを実行する可能性があります。
本質的に、WebGL™ブラウザーには、JavaScript®を介してアクセスできるように、グラフィックスライブラリに含まれる関数を具体的にリンクするコードが含まれています。 HTML言語標準バージョン5(HTML5)には、キャンバスと呼ばれる特別な要素があり、プラグインを使用せずに画面の領域に直接描画したり、HTMLまたはCSSタグを使用して作業したりできます。必要なほど正確ではない場合があります。 準拠したWebGL™ブラウザー内で、JavaScript®は低レベルのグラフィックライブラリにバインドされ、HTML5キャンバス要素に直接描画され、グラフィックカードからディスプレイデバイスに直接プッシュできるグラフィックのプラットフォームを提供します。
使用されるライブラリは、OpenGL®組み込みシステムライブラリ(OpenGLES®)です。これは、モバイルデバイスで動作するように設計された標準OpenGL®ライブラリ関数のサブセットです。 WebGL™ブラウザーが可能な理由の1つは、WebGL™ライブラリーの軽量性です。これは、大量のリソースを消費せず、完全なOpenGL®実装のよりプロセッサーを集中的に使用する機能の一部を含みません。 ただし、WebGL™ブラウザーで繰り返し発生する問題は、コンピューターまたはデバイスのドライバーとハードウェアがOpenGLES®アプリケーションを実行できる必要があることです。 一部のオペレーティングシステム、デバイス、ハードウェア、さらにはドライバーには、WebGL™プログラムを実行する機能がなく、インストールされているグラフィックハードウェアを交換する以外の簡単なソリューションもありません。
WebGL™ブラウザーの安全性とセキュリティに関する大きな懸念により、一部の主要なブラウザー開発者はWebGL™のサポートを完全に実装できませんでした。 これは主に、ブラウザーがWebGL™コードに提供する直接アクセスに起因します。 悪意を持って使用すると、グラフィックカードを操作してホストシステム経由で損傷を与えたり、最悪の場合、有害なコンピューターコードを実行または植え付けるためのゲートウェイとして使用したりできます。