Nelarius

Nelarius

@nelarius.bsky.social

Maps @ Mapbox πŸ—ΊοΈ | Ray tracing ✨ | Voxels ◽️ My rendering notes: https://nelari.us/ GitHub: https://github.com/nelarius

31 Followers 40 Following 62 Posts Joined Jan 2025
1 week ago

Cool, so that's what you've been up to with all these color quantization skeets! πŸ˜„ Looking forward to seeing the book, definitely not too much material about this online.

1 0 1 0
3 months ago
Video thumbnail

Rewrote my voxel raytracing experiment to use spherical harmonics. Probes are now spawned per air voxel adjacent to a diffuse face (as opposed to per diffuse face), which simplifies probe allocation a lot and hopefully leads to easier probe LOD system in the future.

287 20 4 0
3 months ago
Post image Post image

And the final result, with the original 8spp noisy image for reference again.

Pixel peepers will see all sorts of problems with the filtered result, and the edge stopping function could be improved using tricks from the SVGF paper. Still, it's better than waiting for an 2048 spp image to converge πŸ˜„

0 0 0 0
3 months ago
Post image

The biggest difference is that the Γ€-trous algorithm is run iteratively, with the previous c' being used as input for the next run. Each iteration, the gap between neighboring pixels q doubles. The linked paper used 5 iterations.

0 0 1 0
3 months ago
Post image

Finally, moving to the Γ€-trous wavelet algorithm yields still better results. The filter looks similar to the previous one, with the spatial Gaussian replaced with a cubic B-spline.

0 0 1 0
3 months ago

This particular filter is inspired by a bilateral filter (course notes: people.csail.mit.edu/sparis/bf_co...), as well as the edge stopping function from the Γ€-Trous wavelet filter paper (jo.dreggn.org/home/2010_at...)

0 0 1 0
3 months ago
Post image

The edges are now preserved, but the spatial blur is still not sufficient for removing the noise.

0 0 1 0
3 months ago
Post image

The Gaussian blur can be improved by applying an edge stopping function. It's a Gaussian blur with extra weight multipliers controlling for color and normals, not just distance from the center pixel.

0 0 1 0
3 months ago
Post image

This results in a blurred image, which is a start!

0 0 1 0
3 months ago
Post image

First, ran the image through a Gaussian blur. The new color c' is the average over neighboring pixels.

0 0 1 0
3 months ago
Post image Post image

Worked on a homemade ray tracing denoiser. Ended up with something in the spirit of Γ€-Trous wavelet and SVGF papers, which works quite well for simple, diffuse #voxel meshes.

8 spp images, before and after. Details of journey from Gaussian blur to Γ€-Trous wavelet denoiser in thread πŸ§΅πŸ‘‡

#raytracing

1 0 1 0
4 months ago
Post image

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 πŸ›οΈ

0 0 0 0
5 months ago
Video thumbnail

The planetary sunrises and sunsets you get with the Unreal sky model are probably overkill for the #voxel renderer, but makes for nice #screenshotsaturday material πŸͺ

3 0 0 0
5 months ago

The new model gives the transmittance at any point in the sky, so the sun turns convincingly red as it approaches the horizonπŸŒ—

0 0 0 0
5 months ago
Post image Post image

Integrated 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

1 0 1 0
5 months ago

At a quick glance I thought you had gone down some kind of hardcore atmospheric rendering rabbit hole 😁

1 0 0 0
5 months ago

The 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.

2 0 0 0
5 months ago
Video thumbnail

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 πŸ˜„

0 0 1 0
5 months ago
Post image

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

6 0 1 0
6 months ago
Post image Post image

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

3 0 0 0
6 months ago
Post image

Mandatory view of the scene in the #raytracing mode ✨

1 0 0 0
6 months ago
Video thumbnail

Adding 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

6 0 1 0
7 months ago
Video thumbnail

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 ✨

5 1 0 0
7 months ago
YouTube
I3D 2025 Chris Wyman's Keynote "ReSTIR: Traveling the Path of Reuse" YouTube video by I3D Symposium

Worth 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...

53 12 0 1
7 months ago
Post image

Realized that my bookshelf contains a #programming story πŸ˜„

1 0 0 0
8 months ago
Video thumbnail

More 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...

1 0 0 0
8 months ago
Video thumbnail

Basics of the new #voxel UI layout implemented. Apple's RGB sliders are really nice and decided to try implementing those.

#cprogramming

1 0 0 0
8 months ago
Post image Post image

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

2 0 0 0
8 months ago
Post image

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

0 0 0 0
8 months ago

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 πŸ™‚

1 0 1 0