Math, Computer Graphics and GPUs
Erfan Ahmadi
I share my knowledge about computer graphics and math here, the best way I can.

Latest video
Screen-Space Derivatives in Practice
Screen-space derivatives are built into every GPU and available in fragment shader, yet few people know how and when they should use them.
Posts
11 posts since 2019
YouTubeScreen-Space Derivatives in Practice
Screen-space derivatives are built into every GPU and available in fragment shader, yet few people know how and when they should use them.

Effortless Simplex Grid
Deriving the 2D “squash” transform behind simplex noise that turns a square grid into equilateral triangles — a proof instead of magic numbers.

Frames In Flight Explained
What “frames in flight” really means, how to drive it with timeline semaphores, and how swapchain images limit it.

Uploading Textures to GPU — The Good Way
The Nabla utility that streams large textures to the GPU in batches through a fixed-size staging buffer, converting formats on the fly.
Render Target Abstraction over Vulkan and D3D12
Weighing designs for one render-target abstraction over Vulkan render passes and D3D12, from framebuffers to imageless framebuffers.

Compute Shader Tech Demo
Multi-queue submission lands in our renderer backend: two million cubes animated in a compute pass and drawn instanced.

YUGA: The Yugen Asset System
YUGA, our chunked asset file format for meshes, textures and shaders, and how shader reflection data is stored inside it.

Yugen Engine Introduction: The Rendering System
Kicking off a journal on building the rendering system of Yugen, our in-house engine: the Vulkan backend, the demo framework and what comes next.

Bokeh Depth of Field
Three ways to render bokeh depth of field: circular separable DoF, practical gather-based bokeh, and single-pass depth of field.

The Forge Examples
Weekend experiments on The Forge: instancing, Blinn-Phong lighting, deferred shading, toon shading, tessellation and bloom.

Introduction to Me
Who I am, why I wanted to build engines instead of just using them, and why I started this blog.
No posts match. Try another year or clear the search.