This project implements a grass simulator and renderer using Vulkan. Each grass blade is represented by a quadratic Bezier curve, and physics calculations are performed on these control points in a compute shader. Since rendering every grass blade is computationally expensive, grass blade that do not contribute to a frame are culled in the computer shader. Visible bezier representaions of grass blades are sent to a grass graphics pipeline where the Bezier control points are transformed, geometry is created in tesselations shaders, and the grass is shaded in the fragment shader.
Skills
Vulkan, C++, Compute Shader, Physically Based Simulation

Tools:
RenderDoc

What I learned:
 ∙ Vulkan Rendering Pipeline.
 ∙​​​​​​​ Achieved knowledge on Vulkan Rendering and GPU Driven Rendering
 ∙​​​​​​​ How to do compute shader for physic simulation

​​​​​​​
Responsible for: 
Responsible for programming, profiling and debugging. 

Force
Wind 
Recovery 
Collision 
Gravity 

Orientation Culling​​​​​​​
View-Frustum Culling
Distance Culling
Performance Analysis​​​​​​​
Back to Top