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上(在我的博客上保持一定的了解)