The render now supports sub- #voxels! The subvoxels are not interactable (you can't remove individual subvoxels from the full-sized parent) but full-sized voxels can be assigned any arbitrary subvoxel shape.
The render now supports sub- #voxels! The subvoxels are not interactable (you can't remove individual subvoxels from the full-sized parent) but full-sized voxels can be assigned any arbitrary subvoxel shape.
The difference is day and night :)
Oh, signed distance fields (SDFs) are even more fun!
Messing around with reflections....
Added voxel hover highlighting and a toolbar you can actually click on to select blocks :)
Watching the sunset in my #voxel engine. (Added a quick sun and stars to the shader).
Gradual progress on my hobby #voxel engine. Finally have multiple block types with editing and persistence.
Switched back over to wgpu (after learning a bunch from the software rendering) and added a player controller. Progress!
Software voxel raytracer...has shadows, got voxel picking working, and -- given that it's in 100% software raytracing -- I'm decently happy with the 20-30fps it's managing for ~40,000 voxels.
Playing with lighting in the Q2 renderer. Rendering all the lights in the map as point lights rather than using lightmaps.
Got per-model transforms working (two soldiers, one mesh!), which was a lot harder in WGPU that I anticipated. Previously I was cheating by duplicating the meshes and changing vertex data. Understand bind groups and dynamic offsets a *tiny bit* better now.
Ah, there we go...fixed!
MD2 model loading. Debugging the normals as I seem to be generating clockwise faces that are getting culled out. Looks fine when I use a normal shader though...
Got texture mapping working with a WGPU-based Quake 2 renderer. Made it challenging for myself by using a texture atlas despite the Quake 2 map format relying heavily on repeating textures.
Fun variation where I replaced the voxel hit test with a sphere ray trace
"Sky shader" - in quotes since it's a nothing more than a gradient blend that looks good enough to me. Nothing fancy!
Alright! New test scene to check that I fixed the bug with shadows. I had accidentally left in some code to intentionally skip self-intersections that I needed to delete. Oops. Looks much better now.
๐ Hmm, just noticed there's a bug with the shadows.
Woohoo! Got multiple chunks rendering! It's one buffer storage buffer of voxel data along with a chunk count and offsets array. One draw call for ~400k voxels.
Private repo since it's a mess of hobby code, experiments, and hard-coded "let's just get this to work" type stuff. Glad to share any specifics though!
I'm a big fan of bevy, but for this I'm using winit + wgpu directly to learn more about the low-level stuff happening under the hood.
Starting to add texture mapping. A single texture spans an 8x8x8 voxel area.
I render a full-screen quad, compute a ray from each fragment (the camera data is in a uniform), then run a ray-sphere and a ray-plane intersections with intersection code translated to WGSL. The shader is hard-coded to these two objects for now since I haven't done much WGSL before!
Another random idontknowwhatthatis test model, but I got basic voxel raytracing working on the GPU!
Playing around with GPU raytracing (using Rust and wgpu). It's a hardcoded, simple scene, but hey, it works!
I've been all over the place with what I've been experimenting with...This time it's a software voxel renderer written in Rust with some basic shadows and normal shading. (The model is a test grid that not supposed to be anything in particular)
Experimenting with making the tile renderer 3D(-ish). Sort of working towards merging the recent rogue-like experiment with some older voxel work I did in the past.
Slowly reworking my rogue-like experiment to have a more organized UI and moving from ASCII to sprites
Continuing with gamedev experiments. This time with some ASCII roguelike stuff :)
Shifting focus to general gamedev and away from voxels and graphics for a bit.