Sign in

Ipotrick

@ipotrick.bsky.social
125 followers 28 following 63 posts
PostsRepliesMedia
Ipotrick @ipotrick.bsky.social · 6h
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.
081
Reposted by Ipotrick
ceruleite.bsky.social @ceruleite.bsky.social · 15/08/2026
Slides for SIGGRAPH 2026 Advances in Real-Time Rendering in Games course's talk on Variable Rate Ray Tracing in Call of Duty: Modern Warfare 4 by Michał Olejnik from Activision are now online - enjoy!! advances.realtimerendering.com/s2026/index....
14724
Ipotrick @ipotrick.bsky.social · 08/08/2026
yea i do a loose matching surface surface test using dual sided plane distance tests. The spatial spread is bilateral hor vert split weighted reservoir resampling, its also really wide, like 16 by 16 in pretrace texture space.
030
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
ah it really butchered the video anyway :D. It is still somewhat visible.
010
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
In these images i move from right to left, showing only the temporal accumulation with spatial passes disabled. Shows how even half the rays resolve a better quality image in disocclusions compared to fixed ray rate per pixel.
000
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
Reposted by Ipotrick
Arseny Kapoulkine @zeux.io · 30/04/2026
New blog post! In "Quantizing tangent frames", we look at various established methods to represent tangent frames in the vertex data, squeeze a few variants into 32 bits per vertex and look at the resulting precision. zeux.io/2026/04/30/q... Share, like and subscribe!
zeux.io
Quantizing tangent frames
I’ve been working on tangent space generation recently, and also pondering the tradeoffs between QTangent and normal-angle storage. So when, in a completely unrelated discussion, someone said “you cou...
15114
Reposted by Ipotrick
ceruleite.bsky.social @ceruleite.bsky.social · 04/06/2026
Advances in Real-Time Rendering in Games will be returning SIGGRAPH 2026... The course will be on Tuesday of SIGGRAPH, room and other details TBD. Cool talks lined up - stay tuned for more info.
2507
Ipotrick @ipotrick.bsky.social · 22/02/2026
Also, ghosting, streaking, boiling and all the other common artifacts are largely gone, its very rare that such an artifact still presents itself.
070
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
I will write a blog on all my drnoiser pipeline in a while i hope
020
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
The firefly filter is very aggressive. It makes the image much too dark. But its temporal stability improvements are massive. It is worth the tradeoff for me.
010
Ipotrick @ipotrick.bsky.social · 02/02/2026
Crude blur here is a mip map blur similar to the mip map based "history reconstruction" blur of Nvidia ReBlur. The thin-ness factor is calculated with the firefly filter. It estimates how many valid spatial blur samples each pixel probably gets by doing plane distance tests of surrounding pixels.
000
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
Reposted by Ipotrick
Claas Gefroi @claasgefroi.bsky.social · 12/01/2026
Diese kostbaren zwei Stunden am späten Abend, wenn niemand mehr etwas von einem will und nichts mehr zu erledigen ist, wenn man tun kann, was man wirklich möchte. So müssten ganze Tage, Wochen, Jahre, Leben sein.
520213
Ipotrick @ipotrick.bsky.social · 11/01/2026
its quite wobbly unstable. Could be made more stable. But as its used for the rtgi atm it has to adapt fast
000
Ipotrick @ipotrick.bsky.social · 09/01/2026
I would like to showcase the denoisers improvements in movement but videos really just remove all noise so i cant really show the difference :/
040
Ipotrick @ipotrick.bsky.social · 09/01/2026
I believe this is not done by others because it requires quite a high probe resolution to work properly without loosing too much quality. Luckily, last year i developed a self adapting sparse raytraced probe volume that can reach densities high enough to capture the world in enough detail :).
040
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
Unfortunately the image gets denoised by the image compression quite a lot already. It is much worse noise in reality :)
010
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
It's surprisingly detailed considering the low probe density. It's also practically completely free as its trivial to calculate the radiance in the same shader as the irradiance per texel.
000
Ipotrick @ipotrick.bsky.social · 30/08/2025
The radiance cache works by storing another layer of texels on the probe. The new texels store the direct radiance coming into their direction, no cos convolve. When shading rtgi ray hits, i sample the radiance of the 8 closest probes by projecting the radiance back onto the hit ws position.
191
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 · 13/08/2025
perf is not too great now, probes take around 500us to update, 600us to eval screen irradiance. Rtgi replaces the eval screen irradiance but takes around 2-3ms now.
010
Ipotrick @ipotrick.bsky.social · 12/08/2025
Goal is to shoot short traces from pixels (up to maybe 15 meters). On miss the ray would read the probe volume radiance in the rays direction. The shorter raylength improves performance immensly. This hybrid RTGI/probe GI is something that i believe could be very performant and pretty.
000
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 · 11/08/2025
Great stuff 😍
010
Ipotrick @ipotrick.bsky.social · 11/08/2025
Yoo, timberdoodle is in there. Great projects all around :)
131
Reposted by Ipotrick
Molly Bangles @mollybangles.bsky.social · 24/03/2025
It’s Timberdoodle time 💛🪶🥔 American Woodcock in Bryant Park, NYC, March 2025
An American Woodcock - a mostly tan/buff colored bird with a potato-like body, very long slender beak, and large eyes - posing among the leaf litter and green ivy on the ground in Bryant Park. The bird is mostly facing the camera, head turned ever so slightly to the left. An American Woodcock walking among the leaf litter and green ivy on the ground in Bryant Park. The skyline is reflected in their left eye.
6923102
Reposted by Ipotrick
Alex Battaglia @dachsjaeger.bsky.social · 22/03/2025
The tech and graphical advancements in Assassin's Creed Shadows are mighty impressive: Micropolygon geometry, fluid wind simulations, ray traced global illumination and so much more. How do they all work and compare to AC games of the past? Find out in my video below! youtu.be/nhFkw5CqMN0
1827021
Reposted by Ipotrick
Kostas Anagnostou @kostasanagnostou.bsky.social · 10/12/2024
Thread divergence during constant buffer reads can have a big perf impact, this presentation discusses how to detect this on NVidia GPUs using GPU Trace and Shader profiler. Also shows how useful access to ISA is for understanding what the shader does under the hood. www.youtube.com/watch?v=HSsP...
youtube.com
How to Improve Shader Performance by Resolving LDC Divergence
YouTube video by NVIDIA Game Developer
1638
Reposted by Ipotrick
Alex Battaglia @dachsjaeger.bsky.social · 14/02/2025
While watching all the trailers from the Sony State of Play I could not help but notice that 90% of the games shown are Unreal Engine games... with each new scene/effect/character shown it is hard not to think "that will probably stutter on PC".
2027815
Reposted by Ipotrick
Paul Willson @pauljwillson.bsky.social · 08/02/2025
Illume
3082783
Reposted by Ipotrick
Christoph Kubisch @pixeljetstream.bsky.social · 30/01/2025
Thanks to a lot of colleagues' great work, happy to share Vulkan samples for RTX Mega Geometry. They should run on all RTX GPUs using today's new drivers github.com/nvpro-sample... github.com/nvpro-sample... github.com/nvpro-sample... github.com/nvpro-sample...
github.com
GitHub - nvpro-samples/vk_animated_clusters: Sample that uses VK_NV_cluster_acceleration_structure to animate meshes for ray tracing
Sample that uses VK_NV_cluster_acceleration_structure to animate meshes for ray tracing - nvpro-samples/vk_animated_clusters
211335
Ipotrick @ipotrick.bsky.social · 28/01/2025
firefox + duckduckgo is pretty solid
030
Ipotrick @ipotrick.bsky.social · 24/01/2025
somehow, i know that this is correct
010
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