OpenGLについて~超概要編


先日の記事でOpenGLというキーワードにぶち当たって、自分には耳馴染みのないワードだったので、簡単に特徴をまとめることにした。
前回記事:【はじめての】WSLでubuntu18.04からIntel・Realsense435を動かそうとした結果
https://qiita.com/hanba-gu/items/7aabf62f47afab2ce5e4

概要

OpenGLはSilicon Graphics社が開発したグラフィックス・インターフェイスAPI。オープン標準規格。
そもそもグラフィックス・インターフェイスAPIは簡単に言うと、ポリゴンや3Dグラフィックを表示させ、GPUの機能をMAXに活用できるようにするもの。

OpenGLの特徴

1.OSに依存しない(Windows、UNIX系OS、Mac OS問わず利用可能) 
もともとはSGI社が開発したものですが、Microsoft社がライセンスを買って自社製品に搭載したため業界標準まで上り詰めたらしいが、OSを選ばないというのが広く使われた大きな理由。
※IphoneやAndoroidでは、OpenGLから派生したOpenGL ESを利用

2.機能がシステムと切り離されているため、ウィンドウ・システムと連携するためのライブラリが必要
→上記1のOSを選ばないというメリットの反面、Windowsやlinuxで利用するための準備が必要になります。そこで利用されているのが、以下のツールキット。

GLUT - The OpenGL Utility Toolkit
→上記が古い?ため互換性のある「freeglut」のツールキットが使われることが多い

Unix系

$ sudo apt-get install freeglut freeglut-devel
(Debian, Ubuntu)
$ sudo apt-get install freeglut3 freeglut3-dev
(RedHat, Fedra)
$ sudo yum install freeglut
$ sudo yum install freeglut-devel

3.Direct Xとの違い
OpenGLと類似のテクノロジとしてMicrosoft DirectX(Direct 3D)があるが、Microsoftが開発した製品のため、Microsoft社製品に依存している。Windows、Xboxなどに利用。
OpenGL2.0リリースされた頃は、DirectXと比較しポリゴン数を稼いで高精度なグラフィックは得意だったが、ゲーム用のエフェクトが苦手だったため、CADなどで利用される場面が多かったが、OpenGL4.3以降は主な機能は同じレベルになっている。

4.C言語でコーディングが出来る
C/C++で提供されているが、FortranやJavaなど多言語向けのラッパー/バインディングも存在する

参考

https://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%AA%E3%82%B4%E3%83%B3
※ポリゴン画像引用