I've spent the whole day improving the QBvh implementation in my renderer. Traversal throughput is now about 2.2–2.5× higher than before. There is still a gap between the latest version and Embree, but that gap has narrowed significantly.
Jiayin Cao
@jiayincao.bsky.social
Principal Devtech @Nvidia. Former graphics engineer at Ready At Dawn, Naughty Dog, Ubisoft. Views are my own.
I've managed to port most of scenes, except those which require unsupported features, from PBRT v4 to SORT Here is a page that reveals all cases that can be ported over, with a few unsupported Except lacking white balancing, most scene look fine comapred with PBRT reference
I found two most interesting scenes from the pbrt 4 scene repo. And threw them to my renderer. It is not a perfect match with PBRT, which is not my goal anyway. (PBRT may have applied some post processing for the first scene so it looks very different)
I wanted to support PBRT scene for quite a while. It is non-trivial amount of plumbing work. With the new asset build pipeline, I asked Codex to help implement a processor that reads PBRT scenes. The renderer is agnostic of it. It works for some scene now Left, pbrt Right, SORT
I got a fiber based texture cache system implemented in my offline renderer. It is now able to render a scene that can't fit within physical memory. Image 1 is the scene I'm testing with. Image 2, 3 and 4 show some profilling data that reveals the benefit of the feature (TBC)
I still remember more than 10 years ago, it took me more or less one or two weeks to integrate a CPU profiler in my renderer. Nowdays, you can make one profiler for your program from scratch within a few hours with AI. It is not as powerful, but still pretty crazy.
Pretty much finished the new asset build pipeline for my renderer. It now reads processed binary assets instead of raw source files. Learned a lot building it, I'll put together a blog post on the design decisions and implementation when I find the time.
Working on an asset pipeline for my offline renderer One feature I'm adding is a build page that visualizes asset generation and dependencies, making it much easier to inspect and debug issues. Built a mostly working prototype in a day with Codex's help Still lots to iterate next
I'm happy to share my latest blog post. In this post, I document how I implemented forward-mode automatic differentiation in my custom shading language and used it to drive mipmap selection in my offline renderer. agraphicsguynotes.com/posts/proced...
Procedural UV Derivatives Evaluation in SORT Renderer
In this post, I want to talk about a topic I have been meaning to write about for quite a few years: texture UV derivatives evaluation in my offline renderer, SORT (Simple Open Source Ray Tracer), whi...
agraphicsguynotes.com
After years of thinking about it, I finally got a reasonable approximation for mipmap selection working in my renderer. The biggest challenge, by far, was supporting procedural UV generation in my shading language. I believe I have enough content to put down a blog post next.
One of the technical blockers that prevents me from rendering scenes like Moana in my offline renderer is the lack of derivative support in my custom shading language. I'm happy to share that I have implemented a solution. Below is a screenshot of a few unit tests.
Earlier in GDC, folks in our teams shared the latest progress of NvRTX branch of Unreal engine. The presentation is now public online youtube.com/watch?v=so9l... The source code for all the new hair pt work is available in our latest release of NvRTX as well developer.nvidia.com/game-engines...
What's New in RTX for Unreal Engine 5
YouTube video by NVIDIA Game Developer
youtube.com
This year at GDC, my peers Evan, Kelsey, and Richard will showcase the latest progress in the UE NvRTX branch, including LSS optimized hair strands path tracing, an area I’ve had the privilege to work on over the past couple of months. schedule.gdconf.com/session/stat...
I'd like to share @daqilin.bsky.social and I co-authored a chapter in the latest GPU Zen 4 book. We cover the engineering details of implementing ReSTIR GI & PT in UE5's NvRTX branch, adopted in NVIDIA's Zorah project showcased at CES and GDC last year. The book is now available on Amazon.
New blog post: developer.nvidia.com/blog/path-tr...
Path Tracing Optimization in Indiana Jones™: Shader Execution Reordering and Live State Reductions | NVIDIA Technical Blog
This post is part of the Path Tracing Optimizations in Indiana Jones™ series. While adding a path-tracing mode to Indiana Jones and the Great Circle™ in 2024, we used Shader Execution Reordering (SER)...
developer.nvidia.com
Our #GDC25 talk on Path Tracing Nanite in UE5 is now available on YouTube: youtu.be/8AnVpcIczyk
GDC 2025 | Path Tracing Nanite in NVIDIA Zorah - Full Session Replay
YouTube video by NVIDIA Game Developer
youtu.be
Here is a new blog post of mine, where I dive deep into the theory and math behind ReSTIR GI. Big thanks to Markus Kettunen for verifying the theory, reviewing the article, and catching a key detail I had missed. agraphicsguynotes.com/posts/unders...
Understanding The Math Behind ReSTIR GI
Recently, I had the pleasure of contributing to Nvidia’s Zorah project, the flagship demo for the RTX 50 Series GPUs. My primary role was to provide technical support for light transport in Zorah, whi...
agraphicsguynotes.com
A nice hugo blog post tool that I built today Sometimes, when we work on a post with a bunch of references, we may need to remove or add items in between. When the article is almost done, adding/removing any of the references requires updating a bunch of hardcoded numbers, which is error prone
Our #GDC25 talk "Path Tracing Nanite in NVIDIA Zorah" is now online, free to watch for all: www.nvidia.com/en-us/on-dem...
Path Tracing Nanite in NVIDIA Zorah | Game Developers Conference (GDC) 2025 | NVIDIA On-Demand
In this session, we will discuss the cutting-edge algorithms and techniques behind NVIDIA's Zorah Blackwell launch demo
nvidia.com