DEVLOG JUNE 2025
Supercharged RTGI, much improved Launchpad, and a new screenshot shader! The development log for June 2025 contains significant breakthroughs, new experimental material, and numerous quality of life (QoL) changes. Here’s a full breakdown of what’s new and improved across my shader suite.
RTGI: beyond ReSTIR
iMMERSE RTGI is my most widely used shader, and it’s just received its biggest upgrade yet. With Ray Tracing, quality scales with the amount of processing power spent, so the primary goal is to maximize the quality/work ratio. A class of algorithms called ReSTIR has spawned the latest breakthroughs on that front, a quantum leap rarely seen in graphics development. ReSTIR GI is the state of the art for Global Illumination effects.
The new sampling algorithm I developed for iMMERSE RTGI significantly outperforms ReSTIR GI, without suffering from its typical drawbacks. It avoids issues like chroma noise, sample correlation that breaks denoiser variance estimation, and the white noise output that’s notoriously difficult to filter.
Reflections in iMMERSE RTGI have also seen major improvements, now tracing pixel-perfect paths using HiZ Min-Max Tracing. This technique enables efficient empty space skipping and is widely recommended – yet outside of AMD’s SSSR, I’ve rarely seen it implemented correctly.
Looking ahead, I plan to split RTGI’s diffuse and specular components into separate shaders. Managing both within a single pipeline has become increasingly difficult as complexity grows.


Launchpad: Harder, Better, Faster, Stronger
Since many other shaders rely on iMMERSE Launchpad, I focused on improving its performance and advancing its optical flow engine. The latest update introduces a novel gradient descent–based algorithm that handles subpixel shifts more effectively than traditional grid-based search methods.
Interestingly, the algorithm was recently plagiarized. While responding to questions from those investigating the situation, I ended up discovering several improvements, which have now been implemented.
You can now choose between two general-purpose gradient descent optimizers. These heuristics are used to minimize pixel-to-pixel error – a necessary step to determine the best alignment between the current and previous frame. That alignment forms the basis of optical flow: estimating how regions of the image have moved over time.
-
Newton: Converges quickly, making it more suitable for lower quality settings.
-
SophiaG: Converges more slowly but finds better minima, which makes it a good fit for high quality settings.
Fun fact: SophiaG is a cutting-edge optimizer originally developed for training LLMs like ChatGPT. I mean, if it works?
Path-Traced Volumetric Fog
Long requested, and long procrastinated: my own fog shader. Originally built as a ground truth reference for a real-time effect, I ended up having so much fun with the full path-traced version that it’s now ready for beta testing.


The team loved the new shader and applied the path-traced volumetric fog to every scene. A couple of highlights:
Unsorted Commits
Here you can find all the minor changes that weren’t mentioned above. These are not comprehensive, and map to multiple commits.
iMMERSE
- [rollback] MXAO rolled back to 2D tiled processing for better performance on lower-end GPUs
- [fix] MXAO low-radius halos around objects
- [improvement] Sharpen now uses a Laplacian-style filter instead of TV-based
- [improvement] MXAO TAAU compatibility greatly improved
iMMERSE Pro
- [improvement] Exposure Fusion is faster now, but lost its controls
- [feature] Insight Magnifier zoom scaling added
iMMERSE Ultimate
- [fix] FFT Bloom not initializing properly at launch
- [feature] ReLight now supports albedo input
- [fix] ReLight subsurface scattering masks not showing up in the GUI
- [fix] ReGrade+ tone curve color corruption
- [fix] ReGrade+ tint not getting reset with “reset all”
- [fix] ReGrade+ colorista widget knobs getting stuck in one place
- [fix] LUT Manager potential crash
METEOR
- [fix] Long Exposure now properly remembers state
- [change] Long Exposure uses ReShade 6.4+ button widget
- [feature] Long Exposure hold button to capture feature
- [feature] Long Exposure fake frame generation using optical flow to close gaps in light streaks