Edited at

WebGL に対応する C++ なフレームワーク

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 上でソースコードが公開されている



  • 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 向けのライブラリのため除外