Unity や UE4 といったゲームエンジンを使うには重すぎるけど、3D 描画処理を直接書きたくないという中間解な(シーングラフ)フレームワークをのせます。いずれも emscripten 経由で WebGL に対応。これ以外に何かあればコメントください。
minko
もともと Stage3D を搭載する Flash Player 向けの 3D フレームワークだったが、3.0 から C++11 を使って書き直され、OpenGL の汎用的な 3D フレームワークとなった。
- Windows/OSX/Linux/iOS/Android に対応
- WebGL 対応はプラグインとして提供されている
- minko/plugin/webgl/README.md で言及している emscripten のインストール方法のリンクが 404 になってしまうが正しいリンクは http://doc.v3.minko.io/wiki/Targeting_HTML5
- プラグイン経由で SDL2 上で動作。作れば GLFW もいける?
- JSON 形式のエフェクトでシェーダ言語は GLSL を使う
- email 対応または電話対応によるサポートを行う商用版もある
- github 上でソースコードが公開されている
- MIT ライセンス
bgfx
クロスプラットフォームなレンダリングに特化したフレームワーク
- Windows/OSX/Linux/iOS/Android に対応
- Windows に関しては Direct3D に対応
- SDL2 または GLFW 上で動作
- C99 API もあり、それを使ったバインディングもある
- GLSL に近い独自のシェーダを使う
- エフェクトシステムはないようだ
- github 上でソースコードが公開されている
- 2条項 BSD ライセンス
magnum
C++11 をベースとする 2D/3D 両利きのグラフィックエンジン
- Windows/OSX/Linux に対応
- SDL2 または GLUT 上で動作
- OpenGL に特化
- github 上でソースコードが公開されている
- サンプルは magnum-examples として公開されている
- MIT ライセンス
oryol
C++11 をベースとするグラフィックエンジン
- Windows/OSX/Linux に対応
-
OpenGL に特化- 後述の sokol に置き換えたことからポータブルになりました
-
github 上でソースコードが公開されている
- Core/Gfx を中心として複数のモジュールで構成されている
- ライブデモ あります
- MIT ライセンス
sokol
C 言語でかかれた最小主義のグラフィックライブラリ
- Windows/macOS/Linux に対応
- single_file_libs の流儀に沿う形でヘッダーオンリー
- 前述の Oryol が使用している
- サンプルは sokol-samples で公開されてる
- ライブデモ あります
- zlib ライセンス
番外
WebGL 出力が出来ない、あるいは C++ ではないと条件を満たせなかったもの
three.cpp
three.js の C++ 移植。WebGL での出力に対応しているか怪しいため番外枠。また、実装ベース元は r50 と古く、現在 r65 ベースの実装が進められている
- C++11 で記述
- ヘッダーオンリー
- github 上でソースコードが公開されている
- MIT ライセンス
libGDX
プレフィクスに lib ってついてるから C/C++ っぽく見えるけど Java の実装で、WebGL での出力が可能。ちなみに Qiita 内に libGDX のタグ がある
gfx-rs/wgpu
Rust で書かれているものの wgpu-native
による C API が存在するため C/C++ から利用することが可能だが WebGPU 向けのライブラリのため除外