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/