Added a quick and dirty VOX importer to my #voxel project. Since I recently played through Monument Valley, I checked out Ephtracy's Monument Valley files first ποΈ
16.10.2025 05:18 β π 0 π 0 π¬ 0 π 0@nelarius.bsky.social
Maps @ Mapbox πΊοΈ | Ray tracing β¨ | Voxels β½οΈ My rendering notes: https://nelari.us/ GitHub: https://github.com/nelarius
Added a quick and dirty VOX importer to my #voxel project. Since I recently played through Monument Valley, I checked out Ephtracy's Monument Valley files first ποΈ
16.10.2025 05:18 β π 0 π 0 π¬ 0 π 0The planetary sunrises and sunsets you get with the Unreal sky model are probably overkill for the #voxel renderer, but makes for nice #screenshotsaturday material πͺ
04.10.2025 15:42 β π 3 π 0 π¬ 0 π 0The new model gives the transmittance at any point in the sky, so the sun turns convincingly red as it approaches the horizonπ
01.10.2025 09:22 β π 0 π 0 π¬ 0 π 0Integrated the Unreal Engine sky model into the #voxel editor. The sunsets didn't look right in the Hosek-Wilkie model (left). With the new sky model, sunsets are now exactly how I wanted them π
Pardon the fireflies, I need to get proper denoising set up β¨
#raytracing
At a quick glance I thought you had gone down some kind of hardcore atmospheric rendering rabbit hole π
24.09.2025 15:41 β π 1 π 0 π¬ 0 π 0The sky is an implementation of Hillaire's model: sebh.github.io/publications...
The atmosphere is rendered into a small 2D angular coordinate lookup table using raymarching integrators from section 3. The LUT is small enough that it can be updated in real-time on the CPU.
The images show a 2D look-up table of scattered light.
The sun position and camera altitude can be played around with in real time. But zooming to space and back just looks so good π
Good morning from an altitude of 40 km!
Putting off other tasks in the #voxel project to work on a much nicer ray-marched sky for the ray tracer.
#screenshotsaturday #raymarching #raytracing
One unexpected benefit of the color palette is storing just an offset index in the voxel. Voxels shrank from 4 bytes to a single byte.
Added a simple SIMD optimization in my RLE algorithm, yielding a 6x #voxel chunk compression speed up ποΈ
#screenshotsaturday
Mandatory view of the scene in the #raytracing mode β¨
05.09.2025 05:18 β π 1 π 0 π¬ 0 π 0Adding an editable color palette to the #voxel editor made it feel more like a real tool. I was finally able to actually make something in it π€ Perfect playground for making scenes to test #raytracing algorithms!
#indiedev
Experimenting with a face extrusion and retraction brush in my toy #voxel editor. Threw a bit of #raytracing in there while I was at it β¨
04.08.2025 19:28 β π 5 π 1 π¬ 0 π 0Worth watching presentation, also provides some background info on how ReSTIR came to be and where it is heading: "ReSTIR: Traveling the Path of Reuse" www.youtube.com/watch?v=MRg9...
31.07.2025 12:20 β π 44 π 11 π¬ 0 π 1Realized that my bookshelf contains a #programming story π
26.07.2025 14:27 β π 1 π 0 π¬ 0 π 0More sliders in the #voxel editor UI! Added okhsl sliders alongside the regular hsl ones. The okhsl color space is much more uniform along its axes (look at the lightness slider).
BjΓΆrn Ottoson has a great write-up about the colorspace here: bottosson.github.io/posts/colorp...
Basics of the new #voxel UI layout implemented. Apple's RGB sliders are really nice and decided to try implementing those.
#cprogramming
Tried Claude for creating interactive mockups of a #voxel editor UI and color scheme. Pretty happy with how quickly I was able to see and play around with some ideas I had.
Now for the fun part, implementing it all by hand in C π
#claude #anthropic
Went down a rabbit hole comparing my monolithic ray tracer to my wavefront implementation and trying to find performance improvements. Still many things I could do to improve wavefront performance, but sharing notes on progress so far.
nelari.us/post/wavefro...
#raytracing #rendering
Looks like knitted wool π
Do you happen to have a write-up about your renderer somewhere? You post all kinds of cool experimental renders, would be cool to learn more about it π
A different perspective of the cornell box β¨
#voxel #raytracing #rendering
Yep, perhaps I should make it impossible to select pure primary colors.
Glad you found a better uintToFloat! And just to be clear, the code is not mine, it belongs to Jakub Boksansky π It's a great reference that I've also lifted many good code snippets from.
Nice, thanks for the tip!
The cornell box is actually a bit of a pathological scene. With red, white, and green walls, the probability was always one and it is the same as no RR.
But in other scenes p = max(albedo) is definitely an improvement! I'll have to see if I can tweak this a bit π
Added Russian Roulette implementation to my #voxel renderer. Didn't really appreciate before -- it doesn't make the image better, it makes it quicker to render. Left/right: vanilla and russian roulette at 16 spp. Speedup with roulette is 1.5x.
Impl from github.com/boksajak/ref...
#raytracing
Plugged the two-sample estimator into my #voxel project and sampled the sun disk using the cone sampling distribution from a previous post. It yields much better results at 64 spp than brute force method (left image).
Looks close enough to make it a new baseline for the reference renderer π€
It appears that one way of implementing "next event estimation" is by just doing multiple importance sampling using two rays instead of one each iteration, with one ray always sampling a light. So instead of the blog post's estimator, using this estimator.
01.06.2025 06:00 β π 1 π 0 π¬ 1 π 0I've been trying to wrap my head around "next event estimation" in #raytracing. What exactly is it and how does it differ from the multiple importance sampling technique, presented e.g. here? lisyarus.github.io/blog/posts/m...
01.06.2025 05:58 β π 34 π 5 π¬ 1 π 0The adjustable sun disk radius is added to the cleaned-up C sky model implementation.
28.05.2025 19:45 β π 0 π 0 π¬ 0 π 0Reused the sky and sun integration from my earlier WebGPU renderer: nelari.us/post/pathtra...
The sun disk values are "somewhat in the ballpark", as only a coarse set of sun disk values are interpolated from the original implementation for simplicity π
Continuing with #raytracing in my #voxel project. Integrated the Hosek-Wilkie sky model, with an adjustable solar radius.
A really large sun disk makes it possible to test what the direct sun light contribution looks like in a simple brute-force renderer.
#cprogramming