Archive
Every post, by year
2026 3 posts
- GPU-Driven AnythingThere is a pattern underneath some of the most interesting graphics techniques. Culling, level of detail, light clusters, particles, splats: one question, where does each thread write, and one answer: count, prefix sum, write.
- Inline SPIR-VSPIR-V can express more than HLSL lets you write. Inline SPIR-V lets you call those instructions straight from HLSL with DXC.
- Screen-Space Derivatives in PracticeScreen-space derivatives are built into every GPU and available in fragment shader, yet few people know how and when they should use them.
2025 1 post
2024 1 post
2022 1 post
2020 4 posts
- Render Target Abstraction over Vulkan and D3D12Weighing designs for one render-target abstraction over Vulkan render passes and D3D12, from framebuffers to imageless framebuffers.
- Compute Shader Tech DemoMulti-queue submission lands in our renderer backend: two million cubes animated in a compute pass and drawn instanced.
- YUGA: The Yugen Asset SystemYUGA, our chunked asset file format for meshes, textures and shaders, and how shader reflection data is stored inside it.
- Yugen Engine Introduction: The Rendering SystemKicking off a journal on building the rendering system of Yugen, our in-house engine: the Vulkan backend, the demo framework and what comes next.
2019 3 posts
- Bokeh Depth of FieldThree ways to render bokeh depth of field: circular separable DoF, practical gather-based bokeh, and single-pass depth of field.
- The Forge ExamplesWeekend experiments on The Forge: instancing, Blinn-Phong lighting, deferred shading, toon shading, tessellation and bloom.
- Who am I? (Apr 2019)Who I am, why I wanted to build engines instead of just using them, and why I started this blog.