3 Followers
2 Following
8 Posts
@runevision I have been literally waiting for this blog post and video for months now. Never thought I'd be hyped for a blog post xD

Managed to fuse @runevision's erosion shader (sampled on a sphere) and @lisyarus's SWE Virtual Pipes fluid sim. It all works on a Yin-Yang chimera grid.

The fluid sim runs on two 1x3 storage textures (in this case 1024x3072) which are then mapped on the 6 faces of a texture_cube<f32>.

The exchange shaders between the Yin-Yang scalar and vector (MAC) grids works with simple bilinear interpolation.

@lisyarus Is the noise done with a compute shader?

And if so, you could also try that terrain erosion noise (https://www.shadertoy.com/view/WXcSRH)

I ported it to WebGPU. It also works with PSRDNoise - basically any gradient noise should work with it.

@runevision Sorry, I was using WebGPU lingo. I ported that earlier version from Shadertoy to a (WebGPU) compute shader to mess around with.

For the PSRDNoise this is what I was referring to: https://github.com/stegu/psrdnoise

It also has a GitHub pages explanation here https://stegu.github.io/psrdnoise/

I am really looking forward to the new iteration, not only because it looks good, but it is technically wonderful.

GitHub - stegu/psrdnoise: Tiling simplex flow noise in 2-D and 3-D compatible with GLSL 1.20 (WebGL 1.0) and above.

Tiling simplex flow noise in 2-D and 3-D compatible with GLSL 1.20 (WebGL 1.0) and above. - stegu/psrdnoise

GitHub

@runevision I had a look at the shader for this and it's so bloody clever - using the gradient (or the curl-ish version of it) and passing it to to a Gabor shader to make each wavelet - and making it curve fractally too! It's just so clever it's stunning.

Have you tried other gradient noises, say PSRDNoise?

Would be possible to split the gradient noise from the Gabor noise with a workgroupBarrier and then (in LDS) do a Laplacian pass to get more detail at higher elevations?

@lisyarus It looks very cool and believable.
My lattice Boltzmann 2D sim uses the heightmap/gradient as a proxy for porosity/drag - however it's not always perfectly stable.
Your solution looks very stable though.
@lisyarus Is this using the lattice Boltzmann method?