Remove RGB channel from water shader to show whats underneath.

I followed this awesome tutorial on creating a Toon Water Shader, though I’m using it in a top-down 2d setting. In the screenshot below you can see the result is blue water with rippling waves from the noise generation. However, even with the alpha on the PBR Master turned low, the blue “Base color” is coloring everything beneath the water blue. I’m hoping to find a way to remove the blue and just have the white ripples over a transparent background so that the “underwater” tiles can remain their true color.

Skipping the multiply/add steps kind of works but the effect is really lost without the “Ripple color” being added, it just looks like cells.

Hey, so I come from making art assets meshes, textures, and materials. From the image, you provided it seems like if you want a more realistic result you would need more specific values for the PBR Master. Rather than having integers for smoothness (which gives uniform reflection across the surface) and occlusion (which defines which areas are self shaded) start by plugging the result of power into those as a starting point (they both take greyscale images (you may need to invert them)). You can also try and generate a normal map from the results of the power node as well (this would define the surface pattern/texture its a way of adding detail to meshes without adding more geometry, not sure if there is a “normalize” node or not). I am not sure what the metallic value would be for water from what I remember if it’s not genuinely a metal metallic should always be 0 as you have it. Also, you would need to generate the inputs from your current setup as it’s animated so you couldn’t, for example, use a static image.


So yeah, in conclusion, I would recommend just defining the surface qualities more. You may not need anything in albedo (which is the base color of the material). Also while I have made textures and material and understand some there are definitely people more knowledgeable in this area than I am. I would also recommend reading up on PBR textures/materials in general. Unfortunately, I think different 3D applications implement it differently, which can be confusing. Just learn how unity defines different values. Hope this helps!


PS: you could go really advanced and try to implement things like caustics but that would be overkill and it probably would require a lot of work /rework on the material you already have.

This could potentially be to do with the blending mode used on the material, although seeing as we can’t see that I will just say you should set it to Fade if it isn’t already (Blend SrcAlpha OneMinusSrcAlpha). If you want just the waves to be opaque, you can plug the result of the ‘Power’ node directly into the alpha output.