Flex Engineは、2017年初頭に作業を開始した個人的なゲームエンジンです。リアルタイムのレンダリングとシミュレーション技術について学ぶための遊び場として使用しています。フレックスエンジンは商用ゲームエンジンではなく、公的に使用するためのものでもありません。
ビルドフレックス
build.mdを参照してください
注目すべき機能
- Vulkanレンダリングバックエンド(vulkanrenderer.cpp)
- ゲーム内スクリプト言語コンパイラ/エディター&仮想マシン(virtualmachine.cpp)
- 条件付きチェックサムベースのシェーダー再コンパイル(shadercompiler.cpp)
- テクスチャ、メッシュ、プレハブ、シェーダー、構成ファイルなどのファイル変更監視(ResourceManager.cpp)
- シリアル化のシーンエディター(Basescene.cpp)
- 編集ツール(変換ギズモ、プロパティエディター、キーバインディングエディターなど)(editor.cpp)
- 基本的なプロファイリングキャプチャ/検査ツール
- Windows&Linuxのサポート
- レンダリング:
- 行進キューブ地形ジェネレーターとレンダラー
- ガーストナーウェーブオーシャンレンダラー
- 長方形のエリアライト(直接のみの拡散と鏡面
- 物理ベースのシェーディングモデル
- 画像ベースの照明
- スクリーンスペースの周囲閉塞
- 安定したカスケードシャドウマッピング
- 一時的な抗拡張
- 署名距離フィールド(SDF)フォント生成&レンダリング
- GPUベースの粒子シミュレーション
GPUで生成された手続き地形
ガーストナーウェーブオーシャンシミュレーション
カスケードシャドウマッピング
GPUで完全にシミュレートおよびレンダリングされた200万個の粒子
単一のフレームのCPU時間を故障するプロファイラーオーバーレイ
いくつかの編集者ウィンドウ
スクリーンスペースの周囲閉塞(SSAO)
Gbuffer(左から下の右へ):位置、アルベド、通常、最終画像、深さ、メタリック、AO、粗さ
編集者の表示


こちらのスクリーンショットをご覧ください
依存関係
Flex Engineは、次のオープンソースライブラリを使用します。
- 弾丸 - 衝突検出および剛体ボディシミュレーション
- Freetype-フォントの読み込み
- GLFW-ウィンドウの作成、入力処理
- GLM-数学操作
- IMGUI-ユーザーインターフェイス
- オープン - オーディオの読み込みと再生
- STB-画像読み込み
- CGLTF-メッシュローディング
- Volk -Vulkan Meta -Roader
ライセンス
Flex EngineはMITライセンスに基づいてライセンスされています。詳細については、license.mdを参照してください。
謝辞
信じられないほど有用なリソースについて、次の個人と組織に感謝しなければなりません。
- github.com/baldurk/renderdocのBaldur Karlsson
- Vulkan-tutorial.comのAlexander Overvorde
- github.com/saschawillems/vulkanのサシャウィレム
- Learnopengl.comのJoey de Vries
- ピストルモデルとテクスチャartisaverb.info/pbt.htmlのAndrew Maximov
- 高品質のPBRテクスチャ用のfreepbr.com
- 上記のオープンソースライブラリへのすべての著者と貢献者
ブログ
ajweeks.com/blogの私のブログで、このプロジェクトについて(やや)最新の状態