Perceptual rendering
Which visual details matter to the viewer? I am interested in how the perception of colour, depth, and texture can guide foveated rendering.
PhD researcher & graphics programmer
University of Leeds · Leeds, UK
I am a PhD student in Perceptual Graphics at the University of Leeds. My research interests are virtual reality and high-performance graphics, particularly foveated rendering, stereo reprojection, and image inpainting.
I am supervised by Dr. Rafael Kuffner dos Anjos, Dr. Markus Billeter, and Prof. Gordon D. Love.
Room 2.04 & 2.26, Sir William Henry Bragg Building, University of Leeds, Woodhouse Lane, Leeds, United Kingdom.
Which visual details matter to the viewer? I am interested in how the perception of colour, depth, and texture can guide foveated rendering.
How can stereo reprojection and hole filling reduce rendering work while preserving visual quality in VR? This connects my interests in perception and high-performance graphics.
Vulkan, OpenXR, and reusable rendering tools. Building the foundations to turn research ideas into working experiments.
Updated
Following CIS5650 independently to understand high-performance GPU programming more deeply. Projects 0 and 1 are complete; Project 2 (stream compaction) is halfway through.
Build small rendering demos on libvultra, exploring GPU-driven large-scene rendering and sampling techniques relevant to my research.
Frustum culling, hierarchical Z-buffer (Hi-Z) occlusion culling, stream compaction, and indirect drawing, with visibility and timing comparisons.
Mesh clustering, hierarchical LOD selection, and on-demand geometry streaming, taking inspiration from Nanite.
Feedback-driven texture streaming, page tables, and cache management under a fixed memory budget.
Compare tiled and clustered light assignment in forward and deferred shading, including light-list construction and shading cost.
Explore voxel-based global illumination (VXGI), Dynamic Diffuse Global Illumination (DDGI), and Lumen-inspired surface-cache and radiance-cache experiments.
Implement ReSTIR DI for many-light direct illumination using spatiotemporal reservoir resampling, then investigate ReSTIR GI for indirect illumination and VR applications.

Graphics and engine projects for research and games, with current libvultra development on the VRI-based dev-VRI branch.
Current development: dev-VRI · early stage

My MSc dissertation renderer, implementing Light Propagation Volumes alongside cascaded shadows, ambient occlusion and screen-space reflections.
MSc dissertation project

A cross-platform render hardware interface with a C ABI and a C++23 wrapper for Vulkan, D3D12, Metal, WebGPU and OpenGL-family backends.
In development

C++23 plotting through a C ABI, with PNG, SVG and PDF export, ImGui integration and a WebAssembly demo.
Early development · API evolving
Embarked on my PhD journey and joined the VCG group at the University of Leeds!
University of Leeds
University of Leeds
Shanghai Zihao Information Technology Co., Ltd
Shanghai Zihao Information Technology Co., Ltd
How Tracy buffers profiling events before connection, and what on-demand capture changes.
If you don't have an XR headset but you want to develop OpenXR apps, you can use Meta XR Simulator! It's great.
Dynamic Programming problems are the most complicated problems in algorithms. However, it is actually simple to solve if you understand the key concepts and the main algorithm f...
Static abstract interface method is a new feature in C# 11 (corresponding .NET 7.0). In this article, we are going to deeply dive into it, talk about why we need it, what it is ...