- Fluid simulation and differentiable rendering systems using Taichi, NVIDIA Warp, and nvdiffrast.
Cornell · Multiple Importance Sampling
ReSTIR · 12 lights, low variance
OIDN · 16 spp denoised
Ohao Engine
C++20 · Vulkan · GLSL · ~37K lines
A standalone Vulkan engine I wrote from scratch. Hybrid renderer with a deferred G-buffer path and a hardware ray-tracing path sharing the same scene representation, bindless resources, and acceleration-structure workflow.
Implements Cook-Torrance GGX BRDF, cascaded shadow maps, TAA, SSAO, and screen-space reflections on the deferred side; RT shadows and RT reflections via Vulkan KHR ray-tracing on the other. Physics layer uses GJK/EPA collision detection over a BVH.
Deliberately built without an editor or third-party engine wrappers — the goal was to understand every system end-to-end: render dispatch, scene upload, acceleration-structure build/update, offscreen image validation, the whole pipeline.