Sign in

Ipotrick

@ipotrick.bsky.social
128 followers 28 following 63 posts
PostsRepliesMedia
Ipotrick @ipotrick.bsky.social · 05/10/2026
Specular RTGI! Extended my RTGI to support specular as well as diffuse. Spec and Diff rays are shot from a shared fixed ray pool, the rays are dynamically distributed across the screen based on demand. Perf impact over diffuse-only is around 25%. Am very happy with the result.
0131
Ipotrick @ipotrick.bsky.social · 08/08/2026
Pioneer Pretraced rayguiding! * Shoot low res rays * Spatially spread bright ray hits * Use bright rays to guide real traced rays Drastically improved directional GI quality, low cost, around 0.2-0.3ms extra Inspired by Restir, but this has 0 additional temporal lag!
1356
Ipotrick @ipotrick.bsky.social · 05/08/2026
Bsky tends to remove noise from videos but i think its still visible here. A comparison of the temporal accumulation only (spatial passes disabled here for visualization purpose). Ray Redistribution On vs Off. Same performance, much better resolve with redistribution.
140
Ipotrick @ipotrick.bsky.social · 05/08/2026
Adaptive ray rate per pixel! A series of compute passes distribute a fixed budget of rays over the pixels on the screen, a fixed trace dispatch goes over the final ray list and traces them. Improves disocclusions drastically. Allows way fewer (i'm using 2x fewer) rays per pixel at BETTER quality.
1 ray per pixel fix ray rate0.5 rays per pixel total budget, rays distributed based on need1 ray per pixel budget, rays distributed based on pixels on need
1283
Ipotrick @ipotrick.bsky.social · 22/06/2026
NEW: Surface Detail Guiding! Analyzing surface detail (using albedo and normals, showin in the heatmap) to inform the spatial denoise passes. Flat color -> wide softer blur. Detailed surface -> smaller blur allowing sharp lighting.
0172
Ipotrick @ipotrick.bsky.social · 22/02/2026
The indirect diffuse denoising now resolves very fast. Evem better since my recent refactor. Here an example of the output in movement before application of albedo (albedo detail can hide potential artifacts). Direct diffuse in the video is a separate system and not denoised, ignore its noise :).
0160
Ipotrick @ipotrick.bsky.social · 18/02/2026
Testing in many different settings is very important for graphics techniques. What works in one setting will fall apart horribly in another. Usually its best to have actual game data to work with. At home i use a lot of dumb test scenes. Very happy to say the GI now works well in all of them 🥳
070
Ipotrick @ipotrick.bsky.social · 14/02/2026
Mooore denoising tricks 😃!! I tested variance as well as ray-length guided spatial filtering. Variance guided filtering is good at preserving lighting silhouettes, while ray-length guiding adds a lot of contact hardening sharpness! 1. no guiding 2. variance guiding 3. ray-length guiding
090
Ipotrick @ipotrick.bsky.social · 13/02/2026
More images of the improved denoiser. This showcases how much smarter the prefilter is now. Its able to keep much more lighting energy at better temporal stability. This is a better comparison than in my last post.
140
Ipotrick @ipotrick.bsky.social · 13/02/2026
I found a few tricks to make the denoiser able to handle a much sparser signal while also increasing temporal stability. With these tricks applied, indirect lighting now looks much better in dark areas. Bright small areas can not illuminate distant pixels much more accurately. Before vs After:
010
Ipotrick @ipotrick.bsky.social · 13/02/2026
I found a bunch of new tricks for denoising. Using them, i re-architected the whole denoising pipeline. Old: prefilter -> stochastic blur -> upscale -> temporal New: prefilter -> stochastic blur -> temporal -> smooth blur -> upscale. Perf and quality are much better with the new architecture.
071
Ipotrick @ipotrick.bsky.social · 04/02/2026
I think most raytracing effects and denoisers don't really think about needs of fast games like shooters. For my RTGI denoiser, i put in a lot of care to get an immediately readable and stable image from the first frame after dis-occlusion. its very satisfying.
1341
Ipotrick @ipotrick.bsky.social · 02/02/2026
My RTGI denoiser had temporal stability issues on thin geometry. While tinkering, i found two tricks to improve this significantly: 1. Based on a per pixel "thin-ness" factor, a crude blur is applied. 2. A geometric mean based firefly filter does the rest. Works much better than i expected.
2120
Ipotrick @ipotrick.bsky.social · 09/01/2026
With my rtgi i am also doing something, that i believe, is a novel technique that i have not seen done before. While probes are often used in rtgi for indirect diffuse on hit shading, i use them to replace all rtgi hit shading. On each hit i project the closest probes radiance into the hits.
This is how the world looks when projecting the closest probes radiance onto the ray hit position.
1183
Ipotrick @ipotrick.bsky.social · 09/01/2026
More denoiser before and after screenshots :)
040
Ipotrick @ipotrick.bsky.social · 09/01/2026
I have been working on a denoiser for raytraced diffuse global illumination in my hobby engine. I am now quite happy with it. It can create a high quality output with only 0.25 rays per pixel. I am particularly proud of how stable it is in movement and on disocclusions.
dark scene before denoisedark scene after denoisedaylight scene before denoisedaylight scene after denoise
040
Ipotrick @ipotrick.bsky.social · 30/08/2025
Experimenting more with hybrid probe and per pixel traced gi. I now use a radiance cache to shade per pixel ray trace hits. It saves a lot of performance and the quality is very close to proper hit shading. Roughly saving ~30-70% of performance for rtgi (local lights make this verrry worthwhile).
060
Ipotrick @ipotrick.bsky.social · 12/08/2025
Started to experiment with raytraced diffuse gi. My probe GI works well but it just can not represent fine details with good performance/memory usage. AO helps it a lot i want even more. Most of the work on RTGI is denoising, very interesting work. Here the current state: Probes only vs RTGI:
270
Ipotrick @ipotrick.bsky.social · 24/01/2025
the warping of the octahedral mapping means that this is not an ideal way to sample in all cases as sometimes the texel distances are much shorter than in other areas of the probe. But generally, this does not seem to cause issues.
000
Ipotrick @ipotrick.bsky.social · 24/01/2025
this is a color coded debug view showing the debugged depth texel (red) and the weight it assigns to all the trace results (green). As you can see, the weights become 0 nearly immediately. Sampling a texel area of 6x6 for this resolution is more than enough to get all valid traces.
110
Ipotrick @ipotrick.bsky.social · 24/01/2025
One of the biggest changes and optimizations i made to my DDGI impl is how probe texels are updated. Instead of all texels looping over all rays per probe, each texel only checks out relevant rays. This is a big performance gain with high ray counts (>256) and good depth resolutions of 16x16.
1151
Ipotrick @ipotrick.bsky.social · 08/01/2025
The current limitation is that i still allocate space for all probes. Making the memory virtual similar to how VSMs do it might allow me to push the probe count even more.
030
Ipotrick @ipotrick.bsky.social · 08/01/2025
An update rate of 12.5% of probes a frame as well as detecting and only updating probes that are close to a surface gives a gigantic performance uplift >40x. Allows me to easily have DDGI run at under 0.3ms even tho i didnt spend more than 30 minutes optimizing. Next step is virtual probe memory.
251
Ipotrick @ipotrick.bsky.social · 07/01/2025
First experiments, using DDGI probes for specular. Made all of bistro super metallic to show the effect. I think this will work really great for rough indirect specular. It would be great if DDGI probes could replace dedicated reflection probes to some extent.
140
Ipotrick @ipotrick.bsky.social · 27/12/2024
I also get beautiful fog at home atm. So pretty 😍
041
Ipotrick @ipotrick.bsky.social · 26/12/2024
Love Fog
191
Ipotrick @ipotrick.bsky.social · 18/12/2024
Automatic Probe Position Refinement :OOO. Works MUCH better then i expected :D. It fixes soo many leaks and artifacts with low probe densities. Really happy with the probes now.
0201
Ipotrick @ipotrick.bsky.social · 16/12/2024
Using shadowmaps to calculate occlusion of probes is painful but necessary for sampling performance. I finally got rid of most leaks by implementing a bunch of biases and heuristics. Performance is much greater with shadowmaps as opposed to tracing visibility for probes now.
2201
Ipotrick @ipotrick.bsky.social · 11/12/2024
Working on global illumination is always amazing fun :)
251