From my experience, all of the "safe textures" for Half-Life 2 pretty much suck. What I ended up doing was making my own material based on the Refract shader instead of the Water shader and then applied it to a func_water_analog. I basically followed this
tutorial to create the texture and then created a couple material files that used it. Though they are Refract shaders, they are sort of hybridized to have the water and fog settings. So, when you're underwater, you get the fog effect and when you're wading through it, you get the normal water effects. The only consequence of this is that they don't reflect the world, but I kind of liked the distortion effect.
The reason I used a func_water_analog instead of a func_brush, despite it not using the water shader, is because without it, I couldn't get the splash and gameplay effects to appear.
In my case, ft_water_01.vmt is the material applied to the top of the func_water_analog. You can remove the part about TextureScroll if you don't want it to scroll.
- Code: Select all
Refract
{
"$normalmap" "nature/ft_water01"
"$refractamount" .08
"%compilewater" 1
"$surfaceprop" "water"
"$bottommaterial" "nature/ft_water_beneath01"
"$fogenable" 1
"$fogcolor" "{31 36 55}"
"$fogstart" 0.0
"$fogend" 150.0
"$abovewater" 1
Proxies
{
TextureScroll
{
"texturescrollvar" "$bumpTransform"
"texturescrollrate" 0.4
"texturescrollangle" 270.0
}
}
}
And ft_water_beneath_01.vmt is what you see when you're underwater and looking up:
- Code: Select all
Refract
{
"$normalmap" "nature/ft_water01"
"$refractamount" .08
"%compilewater" 1
"$surfaceprop" "water"
"$fogenable" 1
"$fogcolor" "{31 36 55}"
"$fogstart" 0.0
"$fogend" 450.0
"$abovewater" 0
Proxies
{
TextureScroll
{
"texturescrollvar" "$bumpTransform"
"texturescrollrate" 0.4
"texturescrollangle" 270.0
}
}
}