- Fluid simulation and differentiable rendering systems using Taichi, NVIDIA Warp, and nvdiffrast across graphics- and simulation-related workflows.
Damaged Helmet · deferred PBR · full material stack
Lantern · emissive driving scene lighting
MetalRoughSpheres · BRDF calibration
Path-tracing pipeline · Intel OIDN denoising on a glossy scene
Helmet · 16 spp · raw path-traced
Helmet · 16 spp · OIDN denoised
Ohao Engine
C++20 · Vulkan KHR RT · GLSL · ~50K C++ + 15K GLSL across 121 shaders
Standalone Vulkan engine written from scratch. Hybrid renderer: a deferred G-buffer path and a hardware ray-tracing path share one scene representation, bindless resources, and acceleration-structure workflow. Architecture spans render (22K LOC), physics (11K LOC), and a gpu / Vulkan abstraction layer (8K LOC).
Deferred path: Cook-Torrance GGX BRDF, cascaded shadow maps, SSAO, screen-space reflections, subsurface scattering, TAA, bloom. Path-tracing path: Vulkan KHR ray-tracing with multiple-importance sampling (balance + power heuristic), environment-map importance sampling via precomputed marginal/conditional CDFs, Owen-scrambled Sobol QMC, variance-driven adaptive sampling, and three denoiser backends (Intel OIDN, NVIDIA OptiX, NVIDIA NRD).
Physics layer: GJK / EPA collision detection over a BVH. Top renders use Khronos glTF Sample Assets — a sanity-check that the engine reproduces the reference results graphics engineers actually verify against.