Sign in

Andrew Helmer

@andrewhelmer.bsky.social
185 followers 121 following 110 posts

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

PostsRepliesMedia
Reposted by Andrew Helmer
JMS55 @jms5517.bsky.social · 18/09/2026
New blog post! Go read about making ReSTIR better, killing ReSTIR, improving denoising, and more! jms55.github.io/posts/2026-0...
14515
Andrew Helmer @andrewhelmer.bsky.social · 12/09/2026
david.alvarezrosa.com/posts/optimi...
david.alvarezrosa.com
Optimizing a Spin-Lock | David Álvarez Rosa
A spin-lock is a lock that never sleeps. Instead of yielding to the scheduler, the thread stays on the CPU and spins. No syscalls. No context switches. In this …
000
Andrew Helmer @andrewhelmer.bsky.social · 05/09/2026
Sebastian Aaltonen's No Graphics API is now on Github! github.com/sebbbi/NoGra...
github.com
GitHub - sebbbi/NoGraphicsAPI: Minimal graphics API. Built on top of latest Vulkan extensions. As close as possibly to my "No Graphics API" blog post and the SIGGRAPH talk.
Minimal graphics API. Built on top of latest Vulkan extensions. As close as possibly to my "No Graphics API" blog post and the SIGGRAPH talk. - sebbbi/NoGraphicsAPI
16216
Andrew Helmer @andrewhelmer.bsky.social · 03/09/2026
Taken in Kyrgyzstan on a trip with two friends, 2023. I don't plan to post much of my photography on Bluesky, but this is the first photo I've edited in a few years. I'm on a personal sabbatical right now, so I have a bit more free time to go through the backlog.
Yellow flowers in the foreground, at a high viewpoint that shows a snaking river valley leading to tall glaciated white mountain peaks in the distance. Kyrgyzstan.
000
Reposted by Andrew Helmer
Yining Karl Li @yiningkarlli.bsky.social · 25/07/2026
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.
1191
Reposted by Andrew Helmer
Tzu-Mao Li @tzumaoli.bsky.social · 20/07/2026
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
0156
Reposted by Andrew Helmer
Jacco Bikker 🎦 @jbikker.bsky.social · 08/07/2026
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...
68120
Reposted by Andrew Helmer
mmalex @mmalex.bsky.social · 06/07/2026
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
1226242
Reposted by Andrew Helmer
Yining Karl Li @yiningkarlli.bsky.social · 02/07/2026
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)
13412
Reposted by Andrew Helmer
Jiayin Cao @jiayincao.bsky.social · 08/06/2026
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...
agraphicsguynotes.com
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...
0306
Reposted by Andrew Helmer
Yining Karl Li @yiningkarlli.bsky.social · 23/05/2026
There's a new paper out in JCGT by @jamportz.bsky.social et al. that proposes a super simple modification of existing microfacet models to implement a retroreflection model. What's interesting is that although insanely simple, the model fits measured data pretty well! jcgt.org/published/00...
28817
Andrew Helmer @andrewhelmer.bsky.social · 19/04/2026
Not only a very cool technique, but first authored by a high school student!
030
Reposted by Andrew Helmer
nicebyte @nicebyte.bsky.social · 12/04/2026
INTRODUCTION TO SPHERICAL HARMONICS FOR GRAPHICS PROGRAMMERS finally done. gpfault.net/posts/sph.html
gpfault.net
Introduction to Spherical Harmonics for Graphics Programmers
1027886
Reposted by Andrew Helmer
Jeremy Laumon @jeremy.laumon.name · 13/03/2026
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!
173
Reposted by Andrew Helmer
Pablo Zurita @pzurita.bsky.social · 05/03/2026
I finally wrapped up the second post on the series about micro-shadowing. On this one I go over a basic approach based on a microsurface, and I show results for different materials and lighting conditions. irradiance.ca/posts/micros...
Screenshot showing skin with micro-occlusion at the top, and micro-shadowing below.
15316
Andrew Helmer @andrewhelmer.bsky.social · 27/02/2026
www.ubisoft.com/en-us/news/i... Quite cool that the latent space is interpolable, so block texture compression, filtering, and mipmapping all work.
ubisoft.com
Shipping Neural Texture Compression in Assassin’s Creed Mirage
A neural material texture compression technique that uses machine learning to exploit the cross-channel structure and reconstruct full PBR materials in real time, enabling high compression rate in Ass...
060
Andrew Helmer @andrewhelmer.bsky.social · 10/01/2026
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?
120
Reposted by Andrew Helmer
MAK @makramd.bsky.social · 05/01/2026
All the presentations slides of the Graphics Programming Conference 2025 are up #GPC2025 graphicsprogrammingconference.com/archive/2025/
graphicsprogrammingconference.com
Graphics Programming Conference
The Graphics Programming Conference is a conference for graphics programmers, from student to industry veteran, taking place in November in Europe.
03412
Andrew Helmer @andrewhelmer.bsky.social · 26/12/2025
If you haven't seen the HDR debate between Timothy Lottes and Filippo Tarpini (mostly on the other site), it's very interesting! Article: share.google/SlH7YI6l8Cc1... Response: youtu.be/OXpLF69jPhI?... Rebuttal: (attached image from the other site) Second Response: youtu.be/hzOkBfwEruI?...
0151
Andrew Helmer @andrewhelmer.bsky.social · 20/12/2025
This is one of the better general write-ups of CPU perf optimization that I've seen: abseil.io/fast/hints.h...
abseil.io
abseil / Performance Hints
An open-source collection of core C++ library code
010
Andrew Helmer @andrewhelmer.bsky.social · 17/12/2025
Way to generate a random integer in the range [0,N) without *usually* using an integer division (which rejection sampling does): lemire.me/blog/2019/06... And a nice explanation here: jacquesheunis.com/post/bounded...
jacquesheunis.com
Generating integers uniformly distributed over an range
010
Reposted by Andrew Helmer
Sebastian Aaltonen @sebaaltonen.bsky.social · 16/12/2025
My "No Graphics API" blog post is live! Please repost :) www.sebastianaaltonen.com/blog/no-grap... I spend 1.5 years doing this. Full rewrite last summer and another partial rewrite last month. As Hemingway said: "First draft of everything is always shit".
sebastianaaltonen.com
No Graphics API — Sebastian Aaltonen
Graphics APIs and shader languages have significantly increased in complexity over the past decade. It’s time to start discussing how to strip down the abstractions to simplify development, improve pe...
19474193
Andrew Helmer @andrewhelmer.bsky.social · 16/10/2025
Lots and lots of good observations in both of these.
010
Reposted by Andrew Helmer
Pekka Väänänen @pekkavaa.bsky.social · 13/10/2025
New article on my site: Better sRGB to greyscale conversion The commonly used greyscale formula is slightly off when computed in gamma space but can it be fixed? 📜 30fps.net/pages/better...
A four-pane comparison of different formulas for greyscale conversion.
Top row: Linear sRGB (the correct way to do it), Gamma sRGB (the somewhat wrong "luma" formula).
Bottom row: CIELAB L* (a high quality option), and the new alternative gamma-space version.

Careful inspection shows the "Gamma sRGB" case is slightly dimmer at points than the others.A quote from “Principles of Digital Image Processing” by Wilhelm Burger and Mark J. Burge. It shows weights that are a better fit for gamma-space greyscale conversion.
1389
Andrew Helmer @andrewhelmer.bsky.social · 04/10/2025
For anyone who's tried to use spherical harmonics for lighting and found the notation- and terminology- heavy definitions confusing, highly recommend this classic: grahamhazel.com/blog/2017/12... I think Graham Hazel's blog was down for a long time, years maybe, but works now!
grahamhazel.com
Alternative definition of Spherical Harmonics for Lighting – Graham Hazel
02410
Reposted by Andrew Helmer
Baptiste GENEST @baptiste-genest.bsky.social · 01/10/2025
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!
14516
Reposted by Andrew Helmer
mjp @mjp123.bsky.social · 08/09/2025
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...
therealmjp.github.io
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...
715153
Andrew Helmer @andrewhelmer.bsky.social · 19/08/2025
Highly recommend Peter Shirley's presentation of "Spherical Harmonic Exponentials for Efficient Glossy Reflections". As always, he makes notation-heavy math way more accessible, and it's an amazing technique: youtu.be/jN7FX5COASM?...
youtu.be
Spherical Harmonic Exponentials for Efficient Glossy Reflections
YouTube video by High-Performance Graphics
170
Reposted by Andrew Helmer
Kostas Anagnostou @kostasanagnostou.bsky.social · 14/08/2025
Great Siggraph 2025 presentation of Gran Turismo's tonemapping pipeline, which also includes a fantastic introduction to light perception and tonemapping, its origins and how it evolved over the years with display technology, recommended read: blog.selfshadow.com/publications...
blog.selfshadow.com
110633
Reposted by Andrew Helmer
Kostas Anagnostou @kostasanagnostou.bsky.social · 13/07/2025
"Hallucinations on the future of real-time rendering", High Performance Graphics 2025 keynote: c0de517e.com/023_hpg.htm
c0de517e.com
Hallucinations on the future of real-time rendering.
Angelo Pesce's homepage & blog on computers, graphics and other things.
0197
Andrew Helmer @andrewhelmer.bsky.social · 09/07/2025
Always a great reference for generating an orthonormal basis from a unit vector: jcgt.org/published/00...
150
Reposted by Andrew Helmer
Yining Karl Li @yiningkarlli.bsky.social · 07/07/2025
At SIGGRAPH 2025, Intel, Disney, & Chaos are doing a course on the nitty gritty details of implementing path guiding methods in 3 production renderers: Cycles, Hyperion, and Corona. I helped write the course notes: 80 pages of great stuff! Coming soon. s2025.conference-schedule.org/presentation...
08416
Andrew Helmer @andrewhelmer.bsky.social · 03/07/2025
Found this cool blog post explaining one way to optimize integer divisions by a constant divisor: ridiculousfish.com/blog/posts/l... Could be useful for a lot of things. Eg hash-map with a prime number of entries, do the precomputation on initialization.
ridiculousfish.com
Labor of Division (Episode I)
110
Reposted by Andrew Helmer
Christoph Peters @momentsingraphics.bsky.social · 21/06/2025
All HPG 2025 papers are now available on the EG digital library. CGF papers: diglib.eg.org/handle/10.23... Conference papers: diglib.eg.org/handle/10.23... It has been a huge honor to act as HPG papers chair and guest editor and I look forward to an exciting program in Copenhagen.
diglib.eg.org
44-Issue 8
High-Performance Graphics 2025
15224
Reposted by Andrew Helmer
Alan Wolfe @demofox.bsky.social · 18/06/2025
Gigi Version 1.0.0 released! This includes WebGPU code generation, and the dx12 preview feature cooperative vectors. A gallery of a few Gigi techniques that you can run in your browser: electronicarts.github.io/gigi/ Gigi: github.com/electronicar...
14310
Reposted by Andrew Helmer
Selena Ling @selenaling.bsky.social · 10/06/2025
Our #SGP25 work studies a simple and effective way to uniformly sample implicit surfaces by casting rays. (1/9) “Uniform Sampling of Surfaces by Casting Rays” w/ @abhishekmadan.bsky.social @nmwsharp.bsky.social and Alec Jacobson
14917
Andrew Helmer @andrewhelmer.bsky.social · 08/06/2025
Such as a simple and useful technique for uniformly sampling points on a surface, can't believe it hasn't been published before: www.arxiv.org/abs/2506.05268 In short: pick a random ray direction. Then pick a random 2D origin in the normal plane. Trace the ray, and return *all* intersections.
arxiv.org
Uniform Sampling of Surfaces by Casting Rays
Randomly sampling points on surfaces is an essential operation in geometry processing. This sampling is computationally straightforward on explicit meshes, but it is much more difficult on other shape...
5356
Reposted by Andrew Helmer
Yining Karl Li @yiningkarlli.bsky.social · 14/05/2025
With @briankaris.bsky.social winning this year’s SIGGRAPH Practitioner award, it’s a great time to repost his HPG 2022 keynote, which is one of the best talks I’ve ever seen. The tech is cool, yes, but what makes the talk is Brian’s approach to R&D and invention. www.youtube.com/watch?v=NRnj...
youtube.com
HPG 2022 Keynote: The Journey to Nanite - Brian Karis, Epic Games
YouTube video by High-Performance Graphics
37114
Reposted by Andrew Helmer
JCGT announcements @handle.invalid · 09/05/2025
Alan Wolfe, William Donnelly, and Henrik Halén, Importance-Sampled Filter-Adapted Spatio-Temporal Sampling jcgt.org/published/00...
05315
Reposted by Andrew Helmer
Ian Holstead @ianholstead.bsky.social · 17/03/2025
I'm speaking at @officialgdc.bsky.social this year! Want to learn about the tech used to ship Alter? Don't let the title scare you, this isn't a technical navmesh talk, in fact you might find it the most interesting if you've never used navmesh before! schedule.gdconf.com/session/apex... #GDC2025
schedule.gdconf.com
'Apex Legends': Preventing Exploits and Shipping Risky Features Using... NavMesh??
19th March, 2025 03:30pm - 04:30pm - Apex Legends’ 26th Legend presented a significant technical challenge; one of her abilities all...
131
Reposted by Andrew Helmer
mjp @mjp123.bsky.social · 11/02/2025
JCGT announcements are now on BlueSky: bsky.app/profile/jcgt...
bsky.app
04425
Andrew Helmer @andrewhelmer.bsky.social · 22/12/2024
Haven't seen anyone post this talk and I thought it was unusually clear on some of the topics. First half is basically about reducing loading hitches, second half about moving to modern GPU-driven rendering, useful even if you're not working with Unreal. youtu.be/WGv_BjxvJ8M?...
youtu.be
A Taste of Chocolate: Adding a Rendering Fast Path without Breaking Unreal Engine | Unreal Fest 2024
YouTube video by Unreal Engine
020
Andrew Helmer @andrewhelmer.bsky.social · 21/12/2024
Interviewer: Can you explain this gap in your resume? Game engine programmer: alignment padding
060