bgfx : Direct3D12からOpenGL, WebGL, Metal, Oculusに対応するオープンソースのグラフィックスライブラリ

GithubでbgfxというグラフィックスライブラリがライセンスはBSD 2-Clauseで公開されています.
https://github.com/bkaradzic/bgfx
このライブラリは”Bring Your Own Engine/Framework”スタイルと言ってますが,サポートするAPIや言語が幅広いです.
対応グラフィックスAPIは以下です.

  • Direct3D 9
  • Direct3D 11
  • Direct3D 12 (WIP)
  • Metal (WIP)
  • OpenGL 2.1
  • OpenGL 3.1+
  • OpenGL ES 2
  • OpenGL ES 3.1
  • WebGL 1.0

対応言語も以下に対応しています.

  • C/C++ API documentation
  • C#/VB/F# language API bindings
  • D language API bindings
  • Go language API bindings
  • Java language API bindings

Who is using it?の項目でを見るとすでにいくつかのゲームやゲームエンジン,ツールで使用されているようでキューブマップ作成のオープンソースのツールcmftStudioなどでも使用しているようです.
cmftStudio
https://github.com/dariomanesku/cmftStudio
サンプルについては下記にまとまっていますが,一通り基本的なものはあるようです.
https://bkaradzic.github.io/bgfx/examples.html
これだけ幅広い環境をサポートするとシェーダの記述方法が気になりますが,GLSL風の文法の言語で記述して付属のコンパイラを使うことで各ターゲット向けを出すようです.
https://bkaradzic.github.io/bgfx/tools.html#shader-compiler-shaderc
Oculusにも対応しているようです.GithubのWho is using it?にAirMechというタイトルが紹介されているのがありますが,こちらのタイトルには「AirMech VR」というOculus対応版がありE3やTGS 2015, CEDEC 2015などでCrescent Bayのデモなどでおなじみですね.
https://www.carbongames.com/airmech/home.html
オープンソースなので自分でゲーム作りに活用するほかに,クロスプラットフォームのグラフィックスライブラリ作成の学習用にソースを見るというのもいいかもしれませんね.
なお,開発者のBranimir Karadžić氏は意見を募集中だそうです.
Your opinion on BGFX
https://www.gamedev.net/topic/671959-your-opinion-on-bgfx/