Solo C++20 · Vulkan 1.3 · no editor host
Not a Unity plugin. Not a toy Cornell box. ~52K lines C++, ~14K GLSL, 121 shaders — KHR RT, ReSTIR GI, DLSS Ray Reconstruction, and a multi-pipeline inverse lab with published ΔPSNR plates.
01 — Architecture
Built to learn how a modern hybrid renderer is wired — not wrapped in an engine SDK. Path tracer is ground truth and indirect light. Deferred is interactive iteration. Hybrid adds RT shadows + 1-bounce RT GI on the deferred G-buffer.
Raygen / closest-hit / miss / any-hit. MIS with Owen-scrambled Sobol. Offline + realtime rgen variants. NEE, env CDF, progressive accumulation.
G-buffer, bindless materials, PBR (Cook-Torrance GGX). Shared TLAS with the RT stack. Fast iteration without reloading the world.
Physics (GJK/EPA + BVH), audio, animation, scene ECS. Same C++20 modular layout — render / gpu / physics / scene crates.
02 — Real-time path tracing
NVIDIA DLSS 4 Ray Reconstruction (raw NGX Vulkan on Linux) + vendor-neutral SVGF. ReSTIR GI on outdoor HDRI. Offline path: Intel OIDN + NRD compose.
ReSTIR GI · outdoor
OIDN · 16 spp helmet
03 — Inverse lab
Multi-pipeline IR: path-tracer oracle (capture-gated LABTEST) + Diff-IR Deferred sibling where free dense maps are the beauty source of truth. Fit is train-only. Published dB always name the metric domain.
| Preset | Init → train PSNR | ΔPSNR | Rough map MSE | Domain |
|---|---|---|---|---|
| spheres | 38.3 → 58.1 | +19.8 dB | 0.362 → 0.179 | Deferred dense ORM · 1080p |
| helmet | 35.8 → 57.6 | +21.8 dB | 0.362 → 0.081 | same |
| outdoor | 32.4 → 56.9 | +24.5 dB | 0.362 → 0.194 | same |
04 — Interview mode
Keyboard 1–5 jumps beats. Send this URL before the call. No textbook chapters — proof first.
| They ask | You show |
|---|---|
| “What is OHAO?” | Hero — hybrid Vulkan RT, orbit video, ~67 fps claim |
| “Path tracer or raster?” | Stack — both, shared scene / materials / TLAS |
| “How do you make 1-spp usable?” | Realtime — drag ReSTIR + OIDN compares |
| “Any research-y results?” | Inverse — Diff-IR plates, +19.8…+24.5 dB, capture-gated PT |
| “Is inverse just a slide demo?” | No — live inverse_fit + RESULTS.md tables; museum / dense maps ship in docs/media |
| “Code?” | github.com/Qervas/ohao_engine |
OHAO Engine — solo Vulkan 1.3 hybrid renderer (path tracer + deferred + inverse lab). Demo: https://qervas.github.io/ohao-engine/