Stylized Water Shader Tutorial with Unity3d and ShaderForge/ASE

Hi there!!

At first, i dont fully call this water “Stylized” because it depends a lot on how its used, what foam is used… So i will call it simply water shader : D

A few days ago, the fifth parof my water shader tutorial was released.
I know the tutorial isnt finished, but the things left are custom editor and some polish, so i think that you will be perfectly able to make the water shader with the first 5 parts : )

There are currently 5 parts(will be updated when 6 is out):

  • Colors
  • Waves
  • Foams
  • Realtime Reflections
  • Custom Lightning, Surface , lights and refractions options
  • Custom Editor part 1
  • Custom Editor part 2
  • Custom Editor part 3
  • ASE
    -ShaderGraph port (soon?)

This will be the result:

And for more info, i have a post explaining the thing and with the links for it:

PD:Sorry if some things arent explained very good, sometimes i explain myself a bit weird and im learning on how to do it better xD

PD2: All parts are out! im preparing the ASE and ShaderGraph parts but im giving now prior to the next big tutorial :stuck_out_tongue_winking_eye:

Have a good dev!!


I saw your Nice Water Shader in Artstation the other day.

I dare you to recreate it in Unreal Engine (so Unreal users can enjoy the shader too) :new_moon_with_face:

Thanks for sharing, looks nice. Have a good dev too!

1 Like

Soooo cool ! Thanks for sharing ! I will reproduce this with Shadergraph using your tuts.

1 Like

That’s so cool !
Unfortunately Shader Forge is no longer update and is odd, I will try to recreate this on Amplify shader :smiley:
Thanks ! :slight_smile:

True, but im using Shader Forge on tutorials because its free, but i really want to use ASE xd

Part 6.1 is out, started explaining and doing the custom editor and undo actions.
ALSO, because ive updated ASE, and loved the new changes, Im planning to do a Bonus part for ASE users ;D

I wish we had another way than depth test to make shorelines (like SDF meshes). We can see that when there is no object behind the shoreline (or too deep), it doesn’t appear. It’s “ok” for the most part, but not ideal.

Ho I see, yeah I love when things are free too hahah if I use ASE it’s because my company buy it for me XD

Hello, thank you for this tutorial.
I making it in Amplifier Shader Editor by myself.
I’m at the part 3 in the tutorial.
that interests somebody to have the nodes for Amplifier here? if I can help a little bit I would be glad.

I just don’t know how to get the Slider node in ASE. I put only float1 because I can slide the values into the editor then.

The Slider on ShaderForge is the same as the Value but with the attribute of Range between two designated numbers.

This Slider can be achieved with a simple float in ASE, you simply have to give it a min and max numbers for the Range


oh!! I learnt something new.
thank you very much !! for the quick answer and the really great explanations in your tutorial.
gif help a lot !

1 Like

that’s me again.

In the 4 part of tutorial, I did everything before plug the turbulence to my reflection node.
I have the water script in, the Lightning color multiplied with all things but I get my reflection in the left bottom corner of the screen.

like this

I think it’s about screenPosition node but I put in the UV in the ReflectionTex and changed it to “Screen”. Maybe Screen isn’t as SceneUV. Because I have the reflection on my Screen as a UI.

I’m searching where I missed something.
if somebody knows why and could help me, I would be really thankful.

thank you for reading.

The parameter “Type: Normalized” should work as intended.

Have a good dev!

thank you very much!!
I could check by myself sorry…
I thought normalized meant “Normal” vector purpose. that takes quite sense if a normal vector is a perpendicular vector on a surface.

that’s working fine now :smiley:

I’m blocked at the “custom lighting”. cannot plug it into the custom light node with a surface output node.
so I changed my output node as a custom light but after then my normal and refraction aren’t working.

(someone explained me how to dot the light with the normal but I dunno how to blend my refraction with. that’s a bit too spicy for me for my level… orz)

I think I’ll waiting your ASE part for correct mine. I know you’re busy and you focus on another great tutorial !
please reply ping me when the ASE part is done. :kissing_smiling_eyes:

Ive just uploaded the ASE port! :smiley:

You can check it on the link of the first post or here:

Didnt have time to read your reply:
You have to set the “Light Model” to “Custom Lightning” in order to use “Custom Lightning” (XD so much custom and lightning)
Anyway you can check it now on the post :stuck_out_tongue_winking_eye:

Have a good dev!

1 Like

you’re so fast !! thank you. I was thinking about to wait 1month or more and it wasn’t a problem at all.
you made my day. that’s the best present I got today ! thank you!!

EDIT: oh, you made the normals one but the variable is let alone near the main output material attributes.
therefore, normals aren’t needed?

HEHE (re-installing)


So, remade mostly 85-90% of the shader in unreal for now, gotta invest more on learning a bit more about the engine and the material editor. Going to investigate on realtime rendering now.

Oh and a question for Unreal bois, is there any built-in nodes for World Space Light Direction? :smiley:

Have a good dev!