LoginSignup
61
53

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-06-22

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

61
53
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
61
53