Check out my personal projects below

Show all projects. Use the filter to list them by skill or technology.

beyond::core (2020)

beyond::core is a library with a bunch of utilities that are associated with graphics. It serves as a supplementary of the C++ standard library and is shared in a lot of my graphics projects. The library implements an ECS, a math library built for 3d graphics, a thread pool, and some customized containers.

beyond::functions (2019)

This library is a C++17 implementation of various type erased callable types.

OpenGL Grass Renderer (2019)

This project is my implementation of the paper Responsive Real-Time Grass Rendering for General 3D Scenes. It uses a combination of compute and tessellation shaders to implement grass simulation and rendering. Grass blades are represented by Bezier curves, and the tessellation shaders dynamically create the grass geometry from the Bezier curves. The compute shader performs Euler's method to simulate the physics of grass blades and then use various culling techniques to reduces the grass blades to draw each frame.

Ray Tracer (2016)

This is a toy ray tracer for the Edx's Computer Graphics Course. It is my first large scale personal coding project. It parses an ad-hoc scene description text format and then performs recursive ray-tracing. The ray tracer handles ray-sphere and ray-triangle intersection but is slow on large scenes because it does not implement any acceleration structures.