Andrew Helmer

@andrewhelmer.bsky.social

Rendering Engineer. Taking some time off. Previously Respawn, Google, The Foundry, Luxology. Enthusiast landscape photographer (andrewhelmer.com/photography). All views my own. He/him.

Over the past few years, it’s become clear to me that there were three graphics papers in the past few years that truly revolutionized their subfields: 3D Gaussian Splatting by Kerbl et al 2023, Monte Carlo Geometry Processing by Sawhney/Crane 2020, and ReSTIR by Bitterli et al 2020.

Hopefully one last SIGGRAPH advertisement. I, myself, yours truly, will present on Haolin's behalf a data-driven method for joint adaptive sampling and quadrature for integration. Wed R408A. In the end of the talk I'll argue why everyone is doing the wrong thing. Paper: suikasibyl.github.io/nqr

Bild

TinyBVH has just been 𝘂𝗽𝗱𝗮𝘁𝗲𝗱 𝘁𝗼 𝟭.𝟴.𝟬. For CPU ray tracing, it is now the fastest option in most cases - Outperforming Intel Embree and Madmann91 for BVH build time and single-ray performance. On GPU, performance exceeds 4B rays per second - 4 rays per pixel at 4k/120Hz. github.com/jbikker/tiny...

Bild

my #1 grizzly beard protip for (game) dev is: if you have a bug that you dont understand the cause of immediately, dont try to fix it; add & iterate visualization / inspection tools until the cause is plain to see. the accumulation of 'observability' in your system's state will pay off many times

In this thread: three cool rendering papers that DisneyResearch|Studios is publishing at EGSR this week. The authors of these papers are peers that I get the privilege of working closely with frequently, and these are projects I've been excited to watch develop! (1/17)

BildBildBild

Ahhh Debug Break can be disabled at the PSO level so the driver can effectively optimize them out of they're disabled, that's cool! And I can them them on "at runtime" without re-compiling the shader from source at least!

I want to do a chain of down sampling using a 6x6 kernel (say, for bloom), representable with 13 bilinear taps. Is it faster to do A) single-pass compute shader (with UAV and globallycoherent), but full manual blending, or B) multiple passes, using a sampler with bilinear interpolation?

Computing the exact bijection of the optimal transport (OT) problem between very large point sets is completely untractable… In our SIGGRAPH Asia 2025 paper: “BSP-OT: Sparse transport plans between discrete measures in log-linear time” we get one with typically 1% of error in a few seconds on CPU!

I've got a new blog post for all of you fine folks! It runs through the additions to D3D12 since it was released, and finishes up with some of the things that have changed for me personally in my code. (And yes it's really been 10 years 👴). therealmjp.github.io/posts/ten-ye...

Ten Years of D3D12

For those of us that have been using it from the start, it can be hard to believe that Direct3D 12 has been around for nearly ten years now. Windows 10 was released on July 29th 2015, and D3D12 has be...

therealmjp.github.io