Tag: Shaders

Gerstner Waves

Getting my feet wet

It’s been since 2006 that I wrote my last actual HLSL shader. A few hardware generations on I’ve started dabbling in shaders again.

Main motivation is probably my new job in Games. Where VFX and it’s mostly rigid offline-render pipeline never spawned much of a sensation of being able to experiment with it’s technologies, it just seems more accessible to just rip open shadertoy and marvel in the little snippets of art that are being spawned from often even littler snippets of code. Well and then open Unity and just start chiseling away on something myself.

Subject #1 would be water. Ocean surfaces, water surface interactions and the like.
Started with very basic Gerstner Waves and as I’m very much at home in it, I started with VEX and Houdini.



This is just a viewport capture, but I was quite alight with the fast results. Teaching VEX definitely pays off, I almost know what I’m doing now!
Well here the same as an Unlit Shader in Unity.

I did not spend all that much time tweaking this to be actually pretty. But conceptually this is something I might make use for some actual project in the nearer future.


Now Oceans somewhat sorted, I was further interested in actual surface water interaction. First thing that has been recommended to me was using Wave Particles, an old concept, but still very often used.


I only got around writing this in VEX. Particles collide so far only with a square container and the displacement function needs some improvements. But overall I can see why this could come in handy, especially for limited use-cases as puddles or swimming, where there is a limited range the waves need to carry and a simple boundary to work with.

Well this were the journey into wet has concluded so far. I’ll post more when I have produced some more results.