OpenGL(Open Graphics Library、オープングラフィックスライブラリー)とは、クロノスグループが策定したコンピューターグラフィックAPIの仕様である。
概要
元々は米国の3DCGワークステーションやソフトウェアのメーカー「シリコングラフィックス社(Silicon Graphics, Inc.)」が1980年代初頭に開発した自社開発のワークステーション向け独自仕様のグラフィックスAPI「IRIS GL (Integrated Raster Imaging System Graphics Library)」を改良し、そのAPI仕様を公開したもの。一般公開されているため、多くの機器、OSに対応するクロスプラットフォーム設計(WindowsやMacOS、Linuxなど基本ソフトを気にしなくてもいいまさに神様仏様のような設計)である。
OpenGLはソフトウェアのように説明されるが、ソフトウェアではなくプログラムする上でのお約束みたいなもの。
モバイルデバイス向けに機能が簡略化された「OpenGL ES」や、Web上での軽快な動作を目的とした「WebGL」も開発されている(話が長くなるのでそれぞれのページに丸投げ)。
3DCG用の機能中心だが、2Dにも十分利用可能。ただしあくまでグラフィックAPI仕様であるため、音声や入出力などは他のライブラリ、コードが必要。またレイトレーシングや文字表示も単体では処理できない。得意分野についてもOpenGLを直接使うのは敷居が高く、FreeGLUTなどのプログラミング補助ライブラリが用いられることが多い。
座標系は右手座標系。右手座標系とは、右手の親指、人差し指、中指を直角に交わるようにした時に、それぞれX軸、Y軸、Z軸とする座標系。指が向いている方向がプラス(Direct3Dは左手座標系)。
Windowsに代表されるマイクロソフト社製プラットフォーム限定のDirect3Dは一度統合を目指したこともあったが結局頓挫しており、要求するハードウェアの特性やAPIの違いは埋められていない。
かつては更新が遅いことで知られていたが、近年はDirect3Dにほぼ歩調を合わせた進歩を遂げるようになっている。
実際のソフトウェア開発現場ではOpenGLを直接扱うのは大変なので、有能でかつかわいいユニティちゃん(Unity3D)などゲームエンジンに丸投げするのが主流である。
CPUオーバーヘッド等の問題
OpenGLにはGPUの仕様の差を埋める目的もあり、その差分計算はCPUが担当する(CPUオーバーヘッド)。当然CPUに余計な計算をさせてしまい本来の性能が発揮できない。近年はこのようなことをしないようにライブラリを作る方向である※1。そのような新たな設計をされた後継ライブラリがVulkanである。
アップル社の非推奨化
2018年6月5日、米アップル社は今後はOpenGLを非推奨とするアナウンスを行った。同社のOSでのOpenGL環境をいつまで維持するかは不明である。同社は代わりとして独自のグラフィックAPI「Metal」を徐々に採用している。
推奨しないよなので今後も使えると思う。安心してね。
※1 ローオーバーヘッドAPI、ローレベルAPI(Low level API)
歴史
- 1992年 Ver.1.0策定(初版)。
- 1997年 Ver.1.1策定。Windows標準VGA標準ドライバーに同梱されているのがこれである
- 1998年 Ver.1.2策定。
- 2001年 Ver.1.3策定。
- 2002年 Ver.1.4策定。
- 2003年 Ver.1.5策定。
- 2004年 Ver.2.0策定。
- 2006年 Ver.2.1策定。
-
参考文献 History of OpenGL(英語) OpenGLWiki
主なアプリケーションソフト
- OpenGL Extensions Viewer - 使用しているPCがどのバージョンに対応しているかを確認するためのフリーソフト。ベンチマークのように簡単に調べられる。ジャンクグラボの動画を作る時に使えるかもしれません。ゲーム開発会社のRealtechVR社製。
- Minecraft(マインクラフト) - マイクロソフト社のサンドボックスゲーム
- SecondLife(セカンドライフ) - 米LindenResearch(リンデンリサーチ)社の開発スタジオLindenLab(リンデンラボ)のメタバース
関連動画
プログラミング環境としてはたとえばMicrosoft社Visual StudioのVisualC++(C++)、VisualC#(C#)を用いる。
外部リンク
関連項目
- OpenGL ES
- WebGL
- GLUT - OpenGL Utility Toolkit。20年以上メンテナンスがされていないというかすでに配布されていないもよう。
- FreeGLUT - 2020年現在こちらを用いて開発をする。しかしコンパイルしたりパスを通すなどとにかくめんどくさい。Visual StudioであればNuGet(旧NuPack)を使うと簡単に導入できるのでおすすめ。
- DirectX - Windows用のライブラリ。2020年現在最新版はDirectX12。
- Visual Studio - マイクロソフト社のプログラミング環境ソフトウェア。条件が合えば無料。2020年現在の最新版は2019。
- シリコングラフィックス
- 4
- 0pt