top of page

GPU

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

grass7.gif

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.

raytracer4.gif

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.

duck3.gif

CUDA RASTERIZER

In this project, I used CUDA to implement a simplified rasterized graphics pipeline, similar to the OpenGL pipeline. I have implemented vertex shading, primitive assembly, rasterization and fragment shading. For more information, please click More button to see the Github page.

boids.gif

CUDA FLOCKING

In this project, I implemented a flocking simulation based on the Reynolds Boids algorithm, along with two levels of optimization: a uniform grid, and a uniform grid with semi-coherent memory access. For more information, please click More button to see the Github page.

©2018 BY LINSHEN XIAO. PROUDLY CREATED WITH WIX.COM

bottom of page