I'm working on a level that uses a func_water_analog to raise and lower the water level. Unfortunately the entity has some serious flaws which are from the entity only being able to use two water textures both of which are very ugly and very old DirectX wise. The problems with the entity are: a) There is no fog underwater. b) Looking at the surface of the water from within appears clear and does not look like water at all. c) Using any other texture besides the two that work makes looking at the surface of the water from within completely black. The issue with the surface seems to be an engine limitation dealing with shaders (hopefully only tied to BSP and BSP entities). I've tried using a func_brush and a func_illusionary parented to the func_water_analog but both have the same result. It seems as soon as the texture is applied to a BSP block that moves, it is unable to render the surface correctly. I was thinking that perhaps I might be able to make a model of a 2D plane that uses the water shader. Then I could use that model with a prop_dynamic and move it with the water. I'm not quite sure how to tie the shader to the model though. Any ideas on how this could be done? If you think you have another solution please share as well. Also, if you think you might know a way to fake the fog that would be excellent.