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.
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


