OpenGL【Open Graphics Library】
概要

特定のハードウェアやオペレーティングシステム(OS)の仕様に依存しない汎用的なグラフィックスライブラリとして、多くの環境で利用されている。Windows環境では米マイクロソフト(Microsoft)社の「Direct3D」(DirectXの3DCG機能)が普及しているが、Windows以外のOSや複数環境に同時対応する開発ではOpenGLが選ばれやすい。
ビデオカードなどに搭載されたグラフィックスチップ(GPU)の機能を直接呼び出せるため、CPUのみで処理する場合より高速な描画が可能である。GPU内部の処理を記述する独自言語の「GLSL」(OpenGL Shading Language)を備え、バーテックスシェーダーやフラグメントシェーダーなどのプログラムを実行することで、光の当たり方や陰影といった緻密な視覚表現を実現できる。OpenGL 4.3以降では画面表示を直接の目的としない計算を行う「コンピュートシェーダー」も利用でき、機械学習など画像処理以外の用途にもGPUの並列演算能力を生かせるようになっている。
規格としてはC言語やC++言語から利用するための仕様が中心だが、他のプログラミング言語向けの拡張仕様やライブラリも提供されている。ハードウェアに近い低レベルのAPIであるため、細かな制御が可能な反面、記述が煩雑になりやすく、初心者には扱いにくい面がある。実際の開発では、より扱いやすい高レベルの機能をまとめたラッパーライブラリを経由して利用されることが多く、用途や動作環境に応じて様々なライブラリが提供されている。
歴史と関連規格
1992年にSGIのIRIS GLを基礎として登場し、2006年に仕様管理がKhronos Groupへ移管された。最新版のOpenGL 4.6は2017年に公開され、SPIR-Vシェーダーを扱う機能などが追加された。Khronos Groupは2016年にOpenGL同様の低レベルのグラフィック機能制御を行うためのAPI規格「Vulkan」を策定し、OpenGLからの移行を促している。
派生規格として、スマートフォンなどの組み込み機器向けに機能を整理した「OpenGL ES」がある。ここからさらに派生して、WebブラウザのJavaScriptコードからGPUによる描画機能を利用できる「WebGL」が策定されている。なお、OpenGLは画面への描画を前提とした設計であるため、GPUの並列演算能力を汎用計算に用いるGPGPU用途には「OpenCL」などの別の規格が用いられることが多い。
関連用語
関連リンク (外部サイト)
他の辞典等による「OpenGL」の解説 (外部サイト)
- ウィキペディア「OpenGL」
- MDN Web Docs 用語集「OpenGL」
- MONOist メカ設計用語辞典「OpenGL」
- TechTerms.com (英語)「OpenGL」
- PC.net Computer Glossary (英語)「OpenGL」
- PC Magazine (英語)「OpenGL」
本ページを参照・引用している文書・論文など (外部サイト)
- 科学技術振興機構「情報管理」52巻1号「テキストマイニングと統計解析言語Rによる特許情報の可視化
」(PDFファイル)にて引用 (2009年4月)