Flex Engine是我從2017年初開始使用的個人遊戲引擎。我將其用作學習實時渲染和仿真技術的操場。 Flex Engine不是商業遊戲引擎,也不旨在公眾使用。
建築彈性
請參閱build.md
值得注意的功能
- Vulkan渲染後端(vulkanrenderer.cpp)
- 遊戲中腳本編譯器/編輯和虛擬機(VirtualMachine.cpp)
- 有條件的基於校驗和的著色器重新編譯(ShaderCompiler.cpp)
- 文件修改紋理,網格,預製,著色器,配置文件等(ResourceManager.cpp)
- 帶有序列化的場景編輯器(basescene.cpp)
- 編輯工具(變換Gizmo,屬性編輯器,鑰匙界編輯器等)(editor.cpp)
- 基本分析捕獲/檢查工具
- 支持Windows&Linux
- 渲染:
- 遊行立方體地形生成器和渲染器
- Gerstner Wave Ocean渲染器
- 矩形區域燈(只有直接分散和鏡頭)
- 基於物理的陰影模型
- 基於圖像的照明
- 屏幕空間環境阻塞
- 穩定的級聯陰影映射
- 暫時性抗氧化
- 簽名距離字段(SDF)字體生成和渲染
- 基於GPU的粒子模擬
GPU上產生的程序地形
Gerstner Wave Ocean模擬
級聯的影子映射
模擬了200萬個顆粒並完全在GPU上渲染
Profiler疊加顯示單個幀的CPU時間分解
一些編輯窗口
屏幕空間環境阻塞(SSAO)
gbuffer(左上至右上方):位置,反照率,正常,最終圖像,深度,金屬,AO,粗糙度
查看為編輯器


在這裡查看更多屏幕截圖
依賴性
Flex引擎使用以下開源庫:
- 子彈 - 碰撞檢測和僵硬的身體模擬
- freetype-字體加載
- GLFW-窗口創建,輸入處理
- GLM-數學操作
- IMGUI-用戶界面
- 開放 - 音頻加載和播放
- STB-圖像加載
- CGLTF-網格加載
- VOLK- VULKAN META -LOVALER
執照
Flex Engine已獲得MIT許可證的許可。有關詳細信息,請參見License.MD。
致謝
必須向以下個人和組織提供非常有用的資源的巨大感謝:
- github.com/baldurk/renderdoc的Baldur Karlsson
- vulkan-tutorial.com的Alexander Overvoorde
- github.com/saschawillems/vulkan的Sascha willems
- Learnopengl.com的Joey de Vries
- 手槍型和紋理的Andrew Maximov Artisaverb.info/pbt.html
- freepbr.com用於高質量的PBR紋理
- 上面提到的所有作者和貢獻者
部落格
在我的博客上,在Ajweeks.com/blog上(在我的博客上保持一定的了解)