Water shader with HDRi

I am trying to create a realistic shader for water for big landscapes. I am using an HDRi to make the lighting, but the problem is that I get a very reflective and bluish shader (because of the glossy shader that I am using and the HDR). What I want to get is something similar to these two images:


https://s3.amazonaws.com/blenderguru.com/uploads/2015/08/Seaplane_Boathouse.jpg

I guess there is a lot postpro on them, but as you can see, even if the sky is blue, the water has this kind of dark desaturate hue, which looks natural. I am playing now with the volume absortion option with no good results, so any tip is welcome.

Thank you!

show us your nodes.
I normally just use a glossy and a fresnel with a normal map, and I get quite decend results…


I was using a glossy shader with a wave texture as a displacement. Your setup looks nicer, and is a good aproximation of what I want:


I would like to have a bit more color variation, but I guess the HDRi is not powerful enough to archieve that. Perhaps with some extra lights or faking the shader with some noise variation for the color.

Use the second color of that mixRGB for coloring your glossy (that was the main reason I left it there)

For more complex scenes the setup gets more complicated… but the basic stuff is to use the fresnel to drive the amount of reflection, and do the complex light interaction ‘below’ the reflection (SSS, Refraction, VolumeScattering, VolumeAbsorbtion, etc)

Unless you see the seabed/shore etc, you only should have to deal with quite sharp glossy or some aniso with incoming tangent and 0.25 rotation (to really stretch those reflections towards camera). If you use displacement and can see through the waves to more sea or can see the seabed, some volume absorption is in order.

I don’t do these myself, so I’m only speculating; maybe the problem is that the env is infinitely far away but what should be visible in the reflections should mimic the nearby atmospheric (haze, fog, distant scattering etc) conditions? And for rendering time we don’t model the atmosphere, but would rather fake it in the reflections. Not “useful” for me per se, but I’m still curious how one would go about to do it.