Androidでの軽量・高効率な動作を重視して設計された、Android、iOS、Linux、macOS、Windows、WebGL2対応のリアルタイム物理ベースレンダリングエンジン。
bkaradzic/bgfx
Direct3D、Metal、OpenGL、Vulkan、WebGLを抽象化し、独自のエンジンと組み合わせて使えるクロスプラットフォームのC++レンダリングライブラリ。
- スター
- 17,626
- フォーク
- 2,162
- 未解決の Issue
- 66
- 最終コミット
- 昨日
これは何?
bgfxは、アプリケーションとグラフィックスAPIの間に位置するレンダリングライブラリです。Direct3D 11/12、Metal、OpenGL、OpenGL ES、Vulkan、WebGLそれぞれに個別のコードを書く代わりに、開発者は共通のインターフェースを通じてドローコールを送信し、bgfxが対象プラットフォームで利用できるバックエンドへ振り分けます。「エンジンやフレームワークは自分で用意する」という方針で設計されており、シーン管理やアセットパイプラインを備えたフル機能のゲームエンジンではなく、レンダリングを担います。
Windows、Linux、macOS、iOS、tvOS、Android、Raspberry Piに加え、Emscripten経由のWebAssemblyをサポートしています。また、C#、Python、Rust、Zig、Java、Go、Luaなどの言語バインディングも提供しています。ライセンスはBSD-2-Clauseで、HARFANG 3Dフレームワークやゲーム『Crypt of the NecroDancer』など、リリース済みの複数のゲームやツールで利用されています。
主な機能
- 01Direct3D 11/12、Metal、OpenGL、OpenGL ES、Vulkan、WebGLを対象にできる単一のAPI。
- 02Wasm/Emscriptenを含む、デスクトップ、モバイル、コンソール向けライセンス環境、Webの各プラットフォームで動作。
- 03C#、Python、Rust、Zig、Java、Go、Luaなどの言語バインディングを提供。
- 04既存のエンジンやフレームワークを置き換えるのではなく、組み込んで使うことを前提に設計。
- 05BSD-2-Clauseライセンスで提供。
ユースケース
- 独自のゲームエンジンやアプリケーションフレームワークに、複数バックエンド対応のレンダリングを追加する。
- デスクトップとモバイルの両方で動作する3Dツールや可視化アプリを開発する。
- WebGLまたはWebAssemblyを使って、ブラウザ向けコンテンツにグラフィックスレイヤーを提供する。
- 既存のbgfxバインディングがある言語で、レンダリングコードのプロトタイプを作成する。
クイックスタート
- 1
お使いのプラットフォームとコンパイラに対応した公式ビルドガイドをお読みください
使う前に知っておきたいこと
- これはレンダリングライブラリであり、フル機能のエンジンではないため、独自のエンジンまたはフレームワークが必要です。
- GNMバックエンドは、ライセンスを取得したPS4開発者のみ利用できます。
収録されている特集
トピック
よくある質問
- bgfx とは?
- Direct3D、Metal、OpenGL、Vulkan、WebGLを抽象化し、独自のエンジンと組み合わせて使えるクロスプラットフォームのC++レンダリングライブラリ。 bgfxは、アプリケーションとグラフィックスAPIの間に位置するレンダリングライブラリです。Direct3D 11/12、Metal、OpenGL、OpenGL ES、Vulkan、WebGLそれぞれに個別のコードを書く代わりに、開発者は共通のインターフェースを通じてドローコールを送信し、bgfxが対象プラットフォームで利用できるバックエンドへ振り分けます。「エンジンやフレームワークは自分で用意する」という方針で設計されており、シーン管理やアセットパイプラインを備えたフル機能のゲームエンジンではなく、レンダリングを担います。
- bgfx は無料で使えますか?ライセンスは?
- bgfx は BSD-2-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- bgfx は今もメンテナンスされていますか?
- 活発にメンテナンス中。bgfx の最終コミットは 2026年11月6日 です。
- bgfx は何に使えますか?
- 独自のゲームエンジンやアプリケーションフレームワークに、複数バックエンド対応のレンダリングを追加する。 デスクトップとモバイルの両方で動作する3Dツールや可視化アプリを開発する。 WebGLまたはWebAssemblyを使って、ブラウザ向けコンテンツにグラフィックスレイヤーを提供する。 既存のbgfxバインディングがある言語で、レンダリングコードのプロトタイプを作成する。
- bgfx のインストール方法は?
- お使いのプラットフォームとコンパイラに対応した公式ビルドガイドをお読みください
- bgfx はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/bkaradzic/bgfx
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
OGREは、Vulkan、Direct3D、OpenGLを抽象化し、C++やPythonでの3Dアプリケーション開発を支援するモジュール型C++レンダリングエンジンです。
GLSL、HLSL、Metal、WGSL、WebGL、CUDA向けの細分化されたシェーダー関数ライブラリ。各ファイルに再利用可能な関数を1つずつ収録しています。
バッファやdescriptor setをGPUポインターとdescriptor heapで置き換える、Metal 4とVulkan 1.4向けの最小構成のC++20グラフィックスライブラリです。
外部依存なしで2D/3D描画、入力、音声、クロスプラットフォーム対応を提供する、ゲーム開発向けのシンプルなCライブラリ。
Strideは、リアルなレンダリングとVRに対応した、C#製の無料・オープンソース・クロスプラットフォームゲームエンジンです。Game Studioというビジュアルエディターを備えています。