Lukas Kalbertodt

@LukasKalbertodt@mastodon.world
17 Followers
59 Following
19 Posts
discrete coziness transform

I added some clouds to my game and tried out how they would interact with my soft shadow volume system. Turns out: quite well! Performance is problematic in a few situations but I like that it mostly just works and produces accurate shadow :)

Here is a short video showing the effect: https://www.youtube.com/watch?v=3FKNjE5G7G4

And yes, the clouds still need lots of work...

#gamedev #graphics #rendering #wgpu #rust

Cloud shadows via “Tiled per-triangle soft shadow volumes”

YouTube

Implemented ambient occlusion in the last few days. While it still needs tuning, everything already looks quite a bit nicer :)

Using a technique heavily based on SAO (scalable ambient obscurance, Morgan McGuire et al, 2012). #gamedev #graphics #wgpu #rustlang

I finally managed to write a blog post about my shadow experiments, tiled soft shadow volumes :)
Really curious what others in the graphics community think.
https://lukaskalbertodt.github.io/2023/11/18/tiled-soft-shadow-volumes.html

#gamedev #graphics #rendering #wgpu #rust

Tiled per-triangle soft shadow volumes · Lukasʼ Blog

A blog about programming, Rust, computer graphics and other stuff.

#Rust #quiz! Without checking, which of the following CSS lengths is the only one that makes the program fail to compile? Explain why in comment (with spoiler/CW).

macro_rules! css {
($($t:tt)*) => {}
}

css!(27px 14% 2em 50vh);

#rustlang

27px
3.8%
14%
69.8%
2em
18.9%
50vh
7.5%
Poll ended at .
Next, I will try to use the already existing mesh clusters of my GPU-driven renderer and cull those per tile, only checking the individual triangles if the cluster's bounding sphere casts a shadow on the tile's frustum. Not sure how much that helps, but it's fairly easy to implement now. Afterwards I probably have to be a bit cleverer about storing all shadow volumes in some kind of data structure. I have ideas but building something like that from shader code seems like a daunting task.

Tiled soft shadow volumes! 🎉

This naive approach is unfortunately not terribly fast. Every 16x16 tile iterates through *all* shadow casting triangles and filters for those that could impact that tile's frustum (calculated from min and max z). In a scene with 750k triangles (280k of which were were shadow casting), this method achieves barely 60fps at 1440p on an RTX 4070.
#rustlang #gamedev #graphics #wgpu