Need help with Water Shader

Hey,
what i want to achieve is this kind of water shader effect. i ASSUME its a shader?
7980456--1024569--archvalewatersample.gif

What i have so far is this, but this just only like is squeezing the image so the borderless texture is broken. So is my shader wrong or should i make it another way, like instead of placing thousands of single images, maybe a huge plane with the image as texture? But then i would have the problem, if i resize the plane, the texture resized instead sttaying the same size…

7980456--1024572--mywatersample.gif

This is how the shader looks like. Just some simple noise added to the vertex position. But i assume its the wrong way? Could anyone please help and give some advice? I am no pro in shader things =(

thank you!

You should ask shader graph questions on the dedicated shader graph forum oe one of the dedicated graphics sub-forums.

I can, of course, move your post for you if you wish.

yes please :slight_smile:

1 Like

This is more an educated guess than detailed knowledge but have you tried to switch “Space” from “object” to “world” in the position node?
That should skew on world coordinates instead on every tile individually.

Don’t skew water position.
First you need water texture, this can be done procedurally with voronoi, but for this case it’s better to make pixelart texture and you have it. Next you displace only pixels and it must be worldspace - you take WS position and feed to sample texture and you will get nice stationary water. If you want to move it, you need to add offset to WS position based on some value like Time similarly like you did above (uv = time + position) and now it scrolls. Last part is displacement, you can find a lot of tutorials if you search in google, but it works like this: You need some values that will give you additional sampling offset (like your image above), it can be gradient noise or any texture. You just sample it and you add this value to uv before sampling.
In summary you don’t need any position displacement, everything is done by displacing uv.
Small note - your texture need wrap mode to repeat and noise should be sampled from world position uv too.

i have literally no idea what i am doing :smiley: playing around all day and i have no idea :smiley: if i added just the noise to UV, it would look like this but i want it to stay pixelated. so i added some kind of pixelation but it only gets worse. i understand only 50% of what you told and could apply actually zero percent of what you said because i have no idea :smiley: how can i displace ONLY pixels? how can i do any of what you told? any tutorial i watched did not help me in my specific problem :-/


this is how it is looking now. i dont know if thats readable.

this is how it looks. after pixelation.
7982487--1025109--mywatersample222.gif

This is very basic example and you can add a lot of features to your liking, you can use texture instead of noise, you can move gradient and many other things or round time to get lower frame rate, but this is yours artistic choice.
I attached texture I made for this graph (do whatever you want with that) - the important part is you must enable point filter when you import this texture, so it’s pixelated.

// btw. realized just now - water scale multiplication is in wrong place

7982682--1025166--water_tex.png