Guillaume Boissé 🔜 GPC’25
banner
gboisse.bsky.social
Guillaume Boissé 🔜 GPC’25
@gboisse.bsky.social
Lead graphics programmer @AMD, previously SIE R&D (PlayStation). Opinions are my own. He/they.
🔗 gboisse.github.io
Indeed, that’s another way of achieving the same effect:p
November 11, 2025 at 5:53 PM
The “albedo bit” is related to glossy reflections. Here’s an example: 1st shot is the cache without jitter (exposing the tiling), 2nd shot is with jitter, and you can see how the details disappear… Finally, 3rd shot divides the radiance by the average cell albedo and re-multiply with per-ray albedo.
November 11, 2025 at 10:25 AM
Indeed, that’s the reason for this random selection. I make lists of hit points for every cell, then pick one hit at random (simple random access) that will be different each time. The process is similar to how I created reservoir lists in this paper (see “algorithm 2”): gpuopen.com/download/SA2...
gpuopen.com
November 10, 2025 at 12:05 PM
I also average the albedo per cell, so I can then divide the resulting radiance by it and re-combine with the per-ray albedo (to recover texture details).
2. For direct lighting, it’s all shadow maps still (although pending to change 🙂) and cosine weighted sampling for indirect.
3. Yes, all diffuse.
November 10, 2025 at 12:05 PM
That’s a great article, thanks for sharing! I’ll try to answer all your questions.
1. Yes, that’s definitely a hard one, balancing between stability and responsiveness is really difficult. I’ve ended up with tracking temporally smoothed delta of luminance values (you can tweak all values of course):
November 10, 2025 at 12:05 PM
I’ll take this as confirmation that you’re preparing a new demo:)
October 22, 2025 at 7:28 PM
I’d say that to me what you do is inspiring. although it likely won’t inspire me to restore old things:p still, I guess it counts?
October 4, 2025 at 2:08 PM
October 4, 2025 at 1:05 PM
lol, I did some tests a while ago with storing all neighbouring cell indices but my experience was that the extra memory fetch wasn’t worth it (slower or barely faster than resolving the neighbours in the 1st place). Are you doing this at tile level?
September 26, 2025 at 4:42 PM
Performance is quite decent even at the highest quality settings; 120us for specular (and ~20us for diffuse):
August 27, 2025 at 5:42 PM
Great work Krzysztof, congrats!
August 26, 2025 at 8:37 PM
Great work, congrats!
July 28, 2025 at 3:12 PM
I am! User’s guillaume1816 it seems.
July 22, 2025 at 9:58 AM
Don’t have any (hands-on) experience with surfels but definitely quite a bit with building real-time GI systems, happy to try and answer some questions, feel free to DM:)
July 22, 2025 at 7:56 AM
ha, nice! At some point I added “de-interleaved” shading and wrote some small breakdown: x.com/guitio2002/s... By now I’ve mostly moved away from light tracing tho, my personal lighting tech is now more akin to path tracing using ReSTIR, radiance caching, etc. Looking forward to see your progress:)
Guillaume Boissé on X: "Small breakdown of the photon mapping effect:" / X
Small breakdown of the photon mapping effect:
x.com
June 28, 2025 at 3:54 PM
100,000 iirc. It was drawing a reflective shadow map from the spotlight, tracing the ~100k rays and shading using a mix of 2D light culling and stochastic sampling, followed by some spatiotemporal denoising. It was my first presentation at a conference (DevCon’17 in San Diego), quite fond memories:)
June 28, 2025 at 2:49 PM
I did this, combined with some efficient light culling, to get some real-time dynamic GI on PS4 some nearly 10 years ago now:)
June 28, 2025 at 2:26 PM
Ego-driven development:) Believing that the authors are incompetent is obviously oversimplifying, but it does make one feel smart about oneself.
June 24, 2025 at 7:14 PM
Thanks, very appreciated! 🙏
May 23, 2025 at 8:16 PM