GPU
Here are my GPU related projects, including Vulkan Grass Rendering, CUDA Rasterizer, CUDA Path Tracer & Boids Flocking simulation.

VULKAN GRASS RENDERING
In this project, I used Vulkan to implement a grass simulator and renderer. I used compute shaders to perform physics calculations on Bezier curves that represent individual grass blades. 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 wrote several shaders. I wrote 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. For more information, please click More button to see the Github page.

CUDA PATH TRACER
In this project, I implemented a CUDA-based path tracer capable of rendering globally-illuminated images very quickly. For every pixel of the image, we shoot a ray from the camera to find intersection with objects in the scene. As this process for every pixel is relatively similar, we can use GPU to run the programs simultaneously to make the path tracer faster. For more information, please click More button to see the Github page.