A glimpse of revamped global illumination in my toy #rustlang #vulkan renderer `kajiya` 👀 Lots more ReSTIR, new meshless irradiance cache, much larger worlds 🎉
Around 11ms/frame here on a Radeon 6800 XT at 1080p, pending some optimizations 😛
Lighting: sun + emissive materials.
We're going to be streaming some Cassette Beasts gameplay this Friday at 09:00 PDT / 17:00 BST exclusively on our Discord! Come and watch!
a related problem to the pixel aliasing: I *really* want to have nice immaculately smooth surfaces. However, because ray marching can't solve the exact surface distance, you get error banding based on your value of epsilon. Pick a value too high and you get banding. Pick a value too low and you need more iterations to solve the surface.
I'm wonder if maybe epsilon should scale with the current distance from the camera, and/or be proportional to the gradient eg dot(raydir, gradient)
For prototyping Monster Feeding Game faster, I decided that I would use my sprites from Wandering Magic. They've been recolored lazily, and I tacked on some extra frames for "mouth open" pose on all NPCs. Once the mechanics seem satisfying, it will be a matter of increasing the sprite size (16x16 or 16x24 instead of 8x8) and tweaking some values in regards to the physics and such. Before that, I need an entity system w/support for collisions and FSM-based behaviours, then platforming code.
image based VRS sounds great until you realize the tile sizes are massive 😭
i wonder if i should just use huge render targets and a VRS mask to decouple AA from the rest of it. i'm pretty sure the bottleneck is the shading rate more so than memory bandwidth.
i'm trying to figure out a good AA scheme for SDF raymarching. for silhouettes / prepass i'm not really sure there's anything to be done besides rendering to a much larger target and scaling down later or post processing hax. for surface details and shadows, "take more samples and average" can be fit in at a regular resolution which makes it easier scale down the complexity when it isn't needed.
Here's a variation on the same math which makes curves look metallic and emphasizes creases. It's sensitive enough to pick up on subtle banding caused by raymarching and seams the octree that should normally be invisible
Security advisory: malicious crate rustdecimal
I wrote about optimizing the new C++ based Blender OBJ importer, and it accidentally ventured into calling conventions topic. https://aras-p.info/blog/2022/05/12/speeding-up-blender-obj-import/
Hearts of the Dungeon List is a new RPG/Visual Novel by NikuTreat. Conquer dungeons, find romance, upgrade the town, build your stats, or just take it easy in this fast-paced turn-based RPG. Available on Steam:
LiFFT, the little FFT library. I wrote this a while back when I needed a lightweight, embedable thing. I recently added some DCT code to it too. Not sure how many people need this, but there you go!
I'm a graphics programmer working for a AAA studio on secret AAA stuff. For fun, I work on a SDF renderer called Tangerine, and other whimsical side projects.
Mastodon server focused on game development and related topics.