A personal game engine
Flex Engine is a personal game engine I began work on in February 2017. I use it as a playground for learning about real-time techniques. I try to keep master reasonably stable, and therefore update it infrequently. See development for the latest changes.
Basic implementation of Cascaded Shadow Mapping
Two million particles updated and rendered entirely on the GPU, utilizing the compute stage
Profiler overlay showing a breakdown the CPU-time of a single frame
Some of the editor windows
Screen-Space Ambient Occlusion (SSAO)
GBuffer (top-left to bottom-right): position, albedo, normal, final image, depth, metallic, AO, roughness
See more screenshots here
Flex Engine uses the following open-source libraries: - Bullet - Collision detection & rigid body simulation - FreeType - Font loading - glfw - Window creation, input handling - glm - Math operations - ImGui - User interface - OpenAL - Audio loading and playback - stb - Image loading - cgltf - Mesh loading - volk - Vulkan meta-loader
Flex engine is released under The MIT License. See license.md for details.
A huge thank you must be given to the following individuals and organizations for their incredibly useful resources: - Baldur Karlsson of github.com/baldurk/renderdoc - Alexander Overvoorde of vulkan-tutorial.com - Sascha Willems of github.com/SaschaWillems/Vulkan - Joey de Vries of learnopengl.com - Andrew Maximov for the pistol model and textures artisaverb.info/PBT.html - FreePBR.com for the high-quality PBR textures - All authors and contributors to the open-source libraries mentioned above
Stay (somewhat) up to date about this project on my blog at ajweeks.com/blog