A Vulkan graphics framework create by I Hsuan "Mark" Chen
- Entry Point
- Application
- SampleApplication (User defined application)
- Scene (User defined scenes)
- CustomBehaviors (User self defined logics like scripting)
- CPUFrustumCulling (specifically for grass at the moment)
- ImguiContext (UI Helper for debugging)
- Engine
- Core
- Time
- AssetManager
- SceneManager/ GameObjects/ Components
- Graphics
- Graphics Manager
- Animation (Model loading/ Animator/ Animation/ Inverse Kinematics)
- Particle
- Grass
- Fluid
- Vulkan (VKWraps/ RenderSystems/ different pipelines & shaders/ compute shaders)
- Camera
- Renderer (Swapchain)
- GraphicsAssetCreator (between assets & Vulkan resource allocation(descriptorsets/ buffers/ image)
- Imgui (debugging interface)
- Input
- Math (Custom quaternion/ VQS/ Path)
- Window
- Physics (Softbody/ Spring)
- Core
-
Download assets and extract to corresponding location
https://drive.google.com/drive/folders/1jxcT7dTBuUUo0AkOVzhjSxDT3kY5J2M6?usp=drive_link -
Build project in VS22
- glfw 3.3.8.bin.WIN64
- glm 0.9.9.8.
- Vulkan 1.3.243.0
- imgui
- stb_image
- Open Asset Import Library (assimp)
- tinyobjloader
F1: Model loading/ Skeletal Animation and Skinning
F2: Path Following/ Orientation Control/ Motion Blending
F3: Inverse Kinematics with FABRIK
F4: Cloth Simulation
Breakdown of F1~F4: https://youtu.be/zH8QJtPN9b0
F5: Particle System (Compute Shader + GPU Instancing)
Breakdown: https://youtu.be/6IlP3RwXFX0
F6: Grass Simulation
Breakdown: https://youtu.be/SMVMA5gTPYA
F7: Fluid Simulation
Breakdown: https://youtu.be/Yuo_39or1Vw
Organized Breakdown: https://youtu.be/fvPsugjBFNg
- Vulkan
Vulkan Tutorial - https://vulkan-tutorial.com/
Vulkan C++ examples and demos - https://github.com/SaschaWillems/Vulkan
Vulkan Game Engine Tutorial - https://youtu.be/Y9U9IE0gVHA?feature=shared - Animation
Skeletal Animation - https://learnopengl.com/Guest-Articles/2020/Skeletal-Animation
FABRIK: a fast, iterative solver for the inverse kinematics problem - http://www.andreasaristidou.com/FABRIK.html - Grass
Procedural Grass in 'Ghost of Tsushima' - https://youtu.be/Ibe1JBF5i5Y?feature=shared
Modern Foliage Rendering - https://youtu.be/jw00MbIJcrk?feature=shared
Interactive Wind and Vegetation in 'God of War' - https://youtu.be/MKX45_riWQA?feature=shared
How do Major Video Games Render Grass? - https://youtu.be/bp7REZBV4P4?feature=shared
Between Tech and Art: The Vegetation of Horizon Zero Dawn - https://youtu.be/wavnKZNSYqU?si=KXW5g2xCANX0SBuH
Chapter 7. Rendering Countless Blades of Waving Grass - https://developer.nvidia.com/gpugems/gpugems/part-i-natural-effects/chapter-7-rendering-countless-blades-waving-grass
Frustum Culling - https://learnopengl.com/Guest-Articles/2021/Scene/Frustum-Culling - Fluid
Particle-Based Fluid Simulation for Interactive Applications - https://matthias-research.github.io/pages/publications/sca03.pdf
Coding Adventure: Simulating Fluids - https://youtu.be/rSKMYc1CQHE?si=OsuSGhJP9wxaHWtV
Optimizing our Realtime Fluid Simulation in Unity - https://youtu.be/9M72KrGhYuE?si=2U6MzH_OsqHPKild