Realistic canal water
From The DarkMod Wiki
written by bikerdude
Summary
I created this water for Seeking Lady Leicester because up until then, The Darkmod didn’t water that look like it should at night. So what have is as close as I could to faking moving water reflections that reacted to nearby light sources.

Coloured, Murky, Reflective Canal Water
In a nutshell all the water is comprised of is a standard guis\underwater\underwater_blue_thinmurk.gui for underwater and a custom shader for the surface. I choose the custom shader, because every other method of using patches on the surface of the water never got close enough to the result I was after.
Custom water texture
What we have is 3 stages -
- Bumpmap - this provides sudo micro-waves to the surface of the water.
- Specularmap - this provides the reflections on the waves from nearby sources of light.
- Deform/heathaze - this copied from the stock water texture(water_coloured) to provide the darkness to the surface of the water at night time.
textures/water_source/water_dark_murk
{
qer_editorimage textures/water_source/water_dark_ed
discrete
nonsolid
water
twosided
translucent
description "dark, semi-transparent clear water with normalmap"
{
blend bumpmap
map textures/water_source/water_green_local
translate 0.025 * sintable[time * ((( parm5 + 0.1) - (( parm5 || 0) * 0.1)) * 2)], 0.01 * sintable[time * ((( parm5 + 0.1) - (( parm5 || 0) * 0.1)) * 2.2)]
scale 1,1
}
{
blend specularmap
map _white
translate 0.025 * sintable[time * ((( parm5 + 0.1) - (( parm5 || 0) * 0.1)) * 2)], 0.01 * sintable[time * ((( parm5 + 0.1) - (( parm5 || 0) * 0.1)) * 2.2)]
scale 1,1
rgb 1.0
}
deform turbulent sinTable 0.0175 (time * ((( parm5 + 0.1) - (( parm5 || 0) * 0.1)) * 1.5)) 10
{
vertexProgram HeatHazeWithMaskAndDepth.vfp
vertexParm 0 time * (( parm5 + 0.1) - (( parm5 || 0) * 0.1)) , time * ((( parm5 + 0.1) - (( parm5 || 0) * 0.1)) * 5)
vertexParm 1 (( parm6 + 1.5) - (( parm6 || 0) * 1.5))
fragmentProgram HeatHazeWithMaskAndDepth.vfp
fragmentMap 0 _currentRender
fragmentMap 1 textures/sfx/vp1
fragmentMap 2 textures/water_source/vp_water
fragmentMap 3 _currentDepth
}
{
blend blend
map textures/water_source/water_clear
alpha 0.7
rgb 0.05
}
}