Miolith

@miolith.bsky.social

🇨🇵 French programming dork stumbling into computer graphics, currently VR/AR engineer. Look at my cool site https://miolith.com/

Custom sun position and procedural sky box for my #voxel engine. Added this to the single compute shader the engine runs which has now 900 lines of code - which is starting to get a bit ridiculous

Today on 🚀 blazingly 🚀 fast 🚀 voxel editor ™️ we're editing blazinglion voxels 🚀 in real time featuring humongous ellipsoids The trick is that the dynamic ellipse you see when I drag my mouse is just a raymarched ellipse SDF that I render as voxels by clamping the ray to the nearest voxel position

Found this idea of recycling empty voxels in dense voxel grids to store the distance to the nearest voxel in each of the 6 directions. With this new addition to my engine I can now have real time brute force path tracing at reasonable framerate on my 10 yo dusty GPU

Decided to raytrace everything in a single compute shader in my voxel engine, it's just easier to share light data between static world grid and dynamic entities like that The entities are just a 3x4 matrix transform and a 3d texture. I first ray intersect their AABB and raymarch the 3d texture.

Added the undo feature to my voxel editor. The undo history has only a depth of 1 for the moment because I'm not sure how I will handle a history of dozens of voxel grids on the GPU yet

Adding entity modeling to my #voxel editor. Entities are 3d textures rendered with fast voxel traversal and the editing process is 100% compute shader as I found that fast and convenient. I'm just really apprehensive about the moment I'll have to implement the Ctrl+Z feature.

I believe it's common in c++ to implement your own span<T> type to have a std::initializer_list constructor (unlike std::span), but I also like to have a span<void> specialization that allows any span type to be passed as an argument without bothering with templated functions

BildBild

Added moving voxels entity to my engine. This is a cube mesh rendered with a fragment shader that casts ray on a 3d texture. No idea if this is efficient I just copied the idea from Teardown

I hope you all enjoy my assert macro. In debug mode it shows the stack trace and add a debugger breakpoint. In release mode [[assume]] allow the compiler to optimize based on assumptions about the program's state. Don't let people tell you this is a UB hazard, you should push that to prod NOW

Bild

Just resumed working on that voxel editor from scratch in C++/Vulkan. Since last time I added - Painting over voxels - Mouse raycasting Quite happy with the performance despite the whole voxel 64-tree being sent to the GPU at each update #voxel #vulkan #c

Working on a real time voxel editor to edit the world of my game that has a ton of tiny voxels I implemented this in Vulkan & C++ because I presumably enjoy torturing myself and I use a sparse 64-tree to store the voxels + raycasting in a compute shader for rendering. #voxel #computergraphics