๐ I am doing better, thank you. My energy envelope is still tight, so I take it easy and rebuild.
05.08.2025 05:22 โ ๐ 2 ๐ 0 ๐ฌ 1 ๐ 0@maxliani.bsky.social
Tracing rays at NVIDIA. Former lighting artist, working on computer graphics rendering tech for all humans and robots alike. I mostly post stuff about light transport simulation, and my hobby project Workbench.
๐ I am doing better, thank you. My energy envelope is still tight, so I take it easy and rebuild.
05.08.2025 05:22 โ ๐ 2 ๐ 0 ๐ฌ 1 ๐ 0Reading your post, if I didnโt know about the subject I may have thought that stratified samples cannot be progressive on their own, while there are stratified samples sequences that already have those properties and more (I.e. pmj02).
The main part of the post is cool nonetheless.
That will break any stratification and the intersection of the 1d and 2d samples will result in white noise.
04.08.2025 10:47 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0In general I tend to stay clear about using 1d samples. Nowadays lots of things are evaluated stochastically. Using a 1d sequence to sample something that will sample over some other dimension (i.e. use a 1d sequence to pick a light to sample, than use a 2d sequence to sample the light area),
04.08.2025 10:47 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0Most stratified sample sequences are โtoroidalโ in nature, but some may have some constraint about what is optimal, for example some work best if the starting point is at increments of 4โฆ
04.08.2025 10:47 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0Stratified sampling can make a set or a sequence. A set requires all samples to deliver the desired quality, while sequences deliver a progressively good result, similarly to your golden ratio test.
Maybe I missed it, as I am surprised you donโt write about the difference between set and sequences.
The way I understand that is that Linโs paper introduces a fast GPU builder for the light treeโฆ but I may be wrong.
My current implementation is a simpler and less capable version of that where I mostly figured out from first principles the math to compute the correct PDFs for MIS with brdf sampling
First rather naive implementation of Stochastic Light Cuts. Here comparing uniform sampling vs SLC with 1spp over 16,000 lights.
26.07.2025 08:59 โ ๐ 31 ๐ 0 ๐ฌ 1 ๐ 0Thank you so much! I am getting there.
25.07.2025 07:24 โ ๐ 3 ๐ 0 ๐ฌ 0 ๐ 0Itโs been a long break away from my projects. Work deadlines + sickness + low energy slow recoveryโฆ
I think Iโll try to make some progress on light transport, at least for a bit. Workbench doesnโt handle many lights (not gracefully at least).
This is really cool, I like the frame composition too.
19.07.2025 23:53 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0I see first public mentions of some of the advanced techniques I implemented while I was there. Like quantized quaternions for OBB ray traversal, variable bit rate encoding, deduplication, among other stuff.
22.06.2025 01:15 โ ๐ 10 ๐ 0 ๐ฌ 0 ๐ 0How did you manage to keep the browser open for that long without running out of memory?
19.06.2025 12:30 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0Histogram Stratification for Spatio-Temporal Reservoir Sampling
Corentin Salaรผn, Martin Bรกlint, Laurent Belcour, Eric Heitz, Gurprit Singh and Karol Myszkowski
(Max Planck Institute for Informatics, Germany & Intel, France)
iribis.github.io/publication/...
So, highlights have to be faked to show consistent positioning between left and right eye, and not break the illusion.
05.06.2025 12:51 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0That said, often in animation the eyes are so big that their placement is faked. I mean they are pointing outwards, and the position of the iris between the eyelids makes it look the eyes are parallel, instead of divergent. This gives problems because the highlights would be at different places.
05.06.2025 12:51 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0Back when I was in lighting, eyes were heavily treated in comp, to get the look right.
With modern lights (I mean PBR) itโs probably not needed to fake the highlight. One can use a small emitter, not bright enough to affect much the character illumination, but enough to produce a highlight.
I wrote an allocator which sub-allocates from large pages, the โproblemโ is that the allocated dedicated blocks for large allocation that exceeds the page size and it returns all those fields no matter what.
This is a straight port. I need to implement something better.
I really, really, really dislike year-based software version numbers.
30.05.2025 09:18 โ ๐ 6 ๐ 1 ๐ฌ 3 ๐ 0Same, it doesnโt seem to affect anything negatively, so I just leave the transitions there for future reference.
27.05.2025 01:28 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0Thanks. The file import section of the programs is the the most neglectedโฆ so I canโt easily load much. The modeling system is also too primordial to make anything, one day Iโll need to make a call on what to do about that.
26.05.2025 09:49 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0Interesting. The takeaway I got was to not ignore transitions, even though most of them may be no-op in my case.
26.05.2025 01:17 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0I sort of do this with everything that is geometry data and xforms, with my own allocator that predates the porting. But I'll have to find a better way to do that, because I allow the allocator to service blocks larger than its own pages, allocating dedicated buffers...
26.05.2025 00:39 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0while in beefy desktop GPUs it is more of a sanity check, to make sure you understand when you are reading or writing to frame buffers. But if I am mistaken if likely that I don't understand well enough.
26.05.2025 00:35 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0The Vk-CUDA interop was the most nebulous and lest documented... it's the only part I had to debug memory leaks. I'd say the second bit was image layout transitions, which still feel weird. As far as I understand, it is a much more important thing in low-power devices, where packing may change.
26.05.2025 00:35 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0Thank you. Just to clarify, the raster renderer is the gray shaded version I toggle to in the renderer, the colored, lit images is the path tracer.
26.05.2025 00:30 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0I initialize 1.3, but by no mean I am using all of it. I use some minimal dynamic rendering features, like viewport, scissor, primitive topology, depth test enable, and line width. On two of the pipelines, I have a push constant... but that's it.
26.05.2025 00:29 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0The Vulkan porting is complete ๐ The last missing piece was the primordial raster renderer, which I am not sure why I keep around :)
All in all, it wasn't nearly as hard as I thought it would be.
I would need lines, thick lines, points (a few px wide), and triangles. Some degree transparency blending, but not strictly in depth order. Basically, all stuff you expect geometry to be augmented with when modeling.
I believe Iโll get there, it wouldnโt have to be crazy efficient.
I donโt know that. But sharing a texture is the main way you draw an image produced somehow in CUDA.
23.05.2025 08:57 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0