LoginSignup
7
5

More than 5 years have passed since last update.

Modern OpenGLとは

Last updated at Posted at 2017-11-30

OpenGLとは

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3130343233342f34623466613737662d663666332d346431382d363266622d3135303062383766613561362e706e67.png

 プログラムからグラフィックスハードウェアを制御するために使用するアプリケーションプログラムインタフェース (API) のひとつ。 クロノスグループ が策定をしており、現在の最新バージョンは4.6である。
 
 Windows, Mac OS, Linux, BSD等の様々なOSの上で利用可能。個人でも無料のソフトウェア群のみでGPUの能力を最大限に利用できる3Dプログラミング環境を整備できる。家庭用・業務用問わず広く普及している。
OpenGL以外には、後継のVulkan、AppleのMetal、MicroSoftのDirect Xなどが存在する。

OpenGLファミリー

 OpenGLには派生形として以下の3つが存在する。

用途
download.png 組込系や携帯デバイス
OpenGL_SC_logo.svg.png 航空電子機器、工業、軍事、医療などセーフティクリティカルな現場
1200px-WebGL_Logo.svg.png Webブラウザ、HTML5のcanvas要素を通じて、JacaScriptで利用できるグラフィックスAPIのWeb標準。

3.X以降のOpenGL

 OpenGLにおける特異点が3.0。
2008年に公開されたOpenGL 3.0では、肥大化したAPIを整理するため、2.X以前を切り捨てる大幅なアップデートが行われた。その後、徐々に後方互換をなくし、3.1からは、Vertex ShaderとFragment Shaderが必須となった。3.2でGeometry Shaderのサポート。4.X系からは、Tesselation ShaderやCompute Shader、Transform FeedBackなどが利用可能になり、よりプログラマブルかつ柔軟に進化している。

2.Xから3.X以降への大きな変化。

  • 固定機能パイプライン、イミディエイトモードを廃止に
  • 多くのOpenGL関数が非推奨に
  • Vertex ShaderとFragment Shaderが必須に

依然として残る問題。解決策としてのVulkan

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3130343233342f34383762323836642d346166642d666537352d353666652d6638626638346637616331322e706e67.png

 OpenGLの次世代APIとして、VulkanがSIGGRAPH 2014にて発表された。
これは、3.X系で後方互換を切ったが、それでも残る1.Xや2.X時代の設計を刷新しようというねらいがある。
OpenGLよりもローレベルな制御が可能で、OpenGLでは不可能だったマルチスレッドに対応している。
ちなみにopenFrameworksにはVulkanのフォークがある。
https://github.com/openframeworks-vk/openFrameworks

まとめ

  • OpenGLは、WIndows、Mac、Linux上で動作し、多くの場面で活躍している。
  • OpenGLは3.0で後方互換を切り捨てた設計に変化した。
  • しかし、以前残るレガシーな設計を刷新すべく次世代APiであるVulkanが発表された。
  • 現在もバージョンアップを重ねより便利なAPIに進化している。
7
5
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
7
5