University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 6 Vulkan Grass Rendering
- Ziyu Li
- Tested on: Windows 7, Intel Core i7-3840QM @2.80GHz 16GB, Nvidia Quadro K4000M 4GB
- Basic Grass Render
- Gravity Force, Recovery Force, Wind Force
- Orientation Culling, View Frustum Culling, Distance Culling
In this project, I use Vulkan to implement a grass simulator and renderer. I use compute shaders to perform physics calculations on Bezier curves that represent individual grass blades in my application. Since rendering every grass blade on every frame will is fairly inefficient, I also use compute shaders to cull grass blades that don't contribute to a given frame. The remaining blades will be passed to a graphics pipeline, in which I write several shaders. I write a vertex shader to transform Bezier control points, tessellation shaders to dynamically create the grass geometry from the Bezier curves, and a fragment shader to shade the grass blades.