3
3
記事投稿キャンペーン 「2024年!初アウトプットをしよう」

JavaScript でシェーダーを扱っていて出てくるいくつかの用語を自分用に少し整理する:OpenGL ES、WebGL、GLSL ES など

Last updated at Posted at 2024-01-27

はじめに

この記事の内容はタイトルの通り、シェーダーを扱っていると出てくるいろいろな用語の一部を、自分用に少し整理してみるという内容です。

p5.js を使ったプログラムなど JavaScript のプログラムで、例えば以下のようなシェーダーを使ったプログラムを作るのに、参考になりそうな情報をいろいろ見ていきました。

そんな中で、聞いたことがあるキーワードや初めて聞くキーワードなどが多く出てきました。

そのキーワードの中で、これまで耳にしていたキーワードも多かったものの、正確な意味をあまり気にしてなかったものもあったので、キーワード同士の関係性や位置付けの違いで、混乱してき部分がありました。

そこで、以下のキーワードをとりあげて、その関係性などを自分用に整理して書いてみようと思います。

  • OpenGL / OpenGL ES
  • WebGL (1.0、2.0)
  • GLSL / GLSL ES

OpenGL(Open Graphics Library) / OpenGL ES(OpenGL for Embedded Systems)

OpenGL は、グラフィックスハードウェア向けの2次元/3次元コンピュータグラフィックスライブラリで、多様な描画デバイスを包括するグラフィックスAPI のオープン標準規格として策定が行なわれている。グラフィックスハードウェア(GPU)の機能および性能を活用した高速なグラフィックス描画が可能。

そして、OpenGL ES は、OpenGL のサブセット。OpenGL と同じくグラフィックスハードウェア(GPU)の機能および性能を活用した高速なグラフィックス描画が可能。
iOS や Android などの携帯端末向け OS で採用されていたり、プレステ3 やニンテンドー3DS にも採用された。

参考

●OpenGL - The Industry Standard for High Performance Graphics
 https://www.opengl.org/

●OpenGL - Wikipedia
 https://ja.wikipedia.org/wiki/OpenGL

●OpenGL ES - Wikipedia
 https://ja.wikipedia.org/wiki/OpenGL_ES

WebGL (Web Graphics Library)

WebGLは、互換性があるウェブブラウザーでプラグインを使用せずにインタラクティブな 3D や 2D のグラフィックをレンダリングするための JavaScript API。
HTML の 要素へ描画を行う。その描画には、ハードウェアのグラフィックアクセラレーションを利用可能。

WebGL 1.0 は、OpenGL ES 2.0 の派生規格で、WebGL 2.0 は OpenGL ES 3.0 の派生規格。

以下は、「サンプルで理解するWebGL 2.0 - WebGL 2.0の利点とは - ICS MEDIA」のもの。
 
image.png

参考

●WebGL: ウェブの 2D および 3D グラフィック - Web API | MDN
 https://developer.mozilla.org/ja/docs/Web/API/WebGL_API

●WebGL - Wikipedia
 https://ja.wikipedia.org/wiki/WebGL#%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%81%AE%E6%87%B8%E5%BF%B5

●WebGL - OpenGL ES 2.0 for the Web
 https://jp.khronos.org/webgl/

●wgld.org | WebGL2: WebGL 2.0 と WebGL 1.0 |
 https://wgld.org/d/webgl2/w001.html

●WebGL Fundamentals
 https://webglfundamentals.org/webgl/lessons/webgl-fundamentals.html

GLSL(OpenGL Shading Language / OpenGL シェーディング言語) / GLSL ES

GLSL は、C言語の構文をベースとした、グラフィックスパイプラインを制御するための高レベルシェーディング言語。GLSL の派生規格として、組み込み環境向けの OpenGL ES用のシェーダー言語の GLSL ES がある。

WebGL 1.0 では GLSL ES 1.0 が利用されており、WebGL 2.0 からは GLSL ES 3.0 も利用可能。

●GLSL - Wikipedia
 https://ja.wikipedia.org/wiki/GLSL

●wgld.org | WebGL: シェーダの記述と基礎 |
 https://wgld.org/d/webgl/w008.html

●GLSL シェーダー - ゲーム開発 | MDN
 https://developer.mozilla.org/ja/docs/Games/Techniques/3D_on_the_web/GLSL_Shaders

●wgld.org | WebGL2: WebGL 2.0 と GLSL ES 3.0 |
 https://wgld.org/d/webgl2/w003.html

●WebGL Shaders and GLSL
 https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3