expenses.bsky.social
expenses.bsky.social
@expenses.bsky.social
@drkay.gay Dr Kay, hi, I watched a presentation you did for the space game and I'm curious about how these luminosity and dust images were created.
June 5, 2025 at 11:33 AM
I've been working on a high quality GPU voxelizer recently
February 4, 2025 at 7:06 AM
expenses.github.io/voxviewer-wa... I've completed the switch to 64-trees, changed to a sponza model and added metallic/roughness as material settings.
January 13, 2025 at 2:32 PM
January 11, 2025 at 5:06 PM
Switching to 64-trees has worked pretty well so far. The ray tracing algorithm from dubiousconst282.github.io/2024/10/03/v... seems to be quite a lot faster, and scales better to larger scenes (500^3 here).
January 10, 2025 at 1:28 PM
Okay, latest version is up!
January 9, 2025 at 9:44 AM
Okay, I got it rendering a proper model. Performance on my laptop with a max bounce count of 2 (max 3 normal rays + 3 shadow rays). Not sure how best to go about profiling things, but I'll give amd's GPU profiler a go
January 7, 2025 at 10:13 AM
You can modify materials now! Tonemapping is fixed. There's an issue where if you set the emission factor super high and leave samples to accumulate, the result starts to look a little funky as the 16-bit floating point buffer starts to loose precision. Switching to a 32-bit buffer would fix this.
January 7, 2025 at 4:15 AM
expenses.github.io/voxviewer-wa... I've fixed the lighting, added emissive materials and basic tonemapping. Think I should be using a slightly different sampler for the tonemapping. I'll fix that later!
January 6, 2025 at 10:04 AM
expenses.github.io/voxviewer-wa... now with pathtracing! The shadow banding issue seems to have been solved - think it was an issue with floating point errors accumulating? I think there might be issues with bounces going through walls or something. But good progress regardless.
January 6, 2025 at 6:46 AM
expenses.github.io/voxviewer-wa... now with soft shadows and sample accumulation! There's some banding going on at the moment, presumably because I'm using a low quality rng sampler as the standard one doesn't compile for wgsl (it uses 64-bit ints). I'll try fix this next time.
January 5, 2025 at 1:19 PM
New day, new shader compilation issue 😅😅 I think I should be able to work around this fairly easily? I really want to see how far I can take this Nvidia shading & sampling code. Multiple importance sampling would be nice to have, so stuff like environment maps can be quickly integrated
January 5, 2025 at 8:10 AM
T_T ran into a shader inconsistency problem. wgpu supports vec3<bool> && vec3<bool> but Chromium/dawn doesn't.
January 4, 2025 at 11:58 AM
January 4, 2025 at 6:03 AM
It's really weird that shader compilers and optimizers still can't precompute normalizing a constant vector.
January 2, 2025 at 10:27 AM
Nice, the shadertoy code ran through slang more or less works without any logic (these were a few compilation problems) fixes.
January 2, 2025 at 9:11 AM
Okay WebGPU, you got < 2 years. Let's see how many of these get implemented :P
January 2, 2025 at 5:47 AM
actually that's not so bad.
January 1, 2025 at 8:29 AM
Oh damn I thought that webgpu was way more stable than that haha. A flag in the settings _and_ on the chromium command line??
December 27, 2024 at 8:56 AM
Okay nice, we're expanding the DAG and rendering voxels now. We end up with a list of cubes to be rendered, then in the vertex shader we write out 6 triangles for each cube.
December 27, 2024 at 6:44 AM
Merry Christmas everyone!
December 25, 2024 at 3:42 AM
I wrote a Sparse Voxel Octree Directed-Acyclic-Graph implementation yesterday, it's very simple really but super impressive. In this example I create a dag that contains values up to 256 from an 8^3 array with an missing corner. It encodes it as just 3 nodes!
December 23, 2024 at 6:41 AM
December 21, 2024 at 4:54 AM
Numpy to the rescue again! Turns out that A) returning numpy arrays from Rust code is way faster, B) the USD python bindings can consume numpy arrays and C) a nontrivial amount of time was spent doing palette stuff in python instead of rust. Generating 500mb USD files is now trivial.
December 17, 2024 at 12:53 PM
One nice aspect of WFC is that contradictions generally don't propagate and you'll just end up with a result with the rare missing tile. This is perfect for big generations where scale is more important than perfect internal consistency!
December 17, 2024 at 7:22 AM