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 } }