This page is incomplete! You can contribute information using GitHub issues or pull requests.
Water shaders are characterized by their use of layered animated ripple maps, tint colours, and reflectance.
They need not exclusively be used for water -- the coolant pools of Keyes (d20) also use water shaders, and the Halo CE Refined project uses them for some glass to better emulate Xbox glass shaders. They are also not exclusively used within the BSP, with skies like Damnation's also using this shader type.
Flowing water with rapids, like waterfalls and rivers, can instead use shader_
Water shaders do not tile their base maps. Instead, the edges of the texture are "smeared" infinitely.
Ripple maps are not rendered correctly in H1PC and H1CE compared to classic Xbox. The highest level of detail mipmap is used for the most distant areas, but water closer to the camera uses the lowest detail mipmap. This is the opposite of how it should be, and results in distant water suffering from major aliasing. The water shader was fixed in H1A.
Structure and fields
|view perpendicular brightness|
|view perpendicular tint color|
|view parallel brightness|
|view parallel tint color|
|ripple animation angle|
|ripple animation velocity|
|ripple mipmap levels|
|ripple mipmap fade factor|
|ripple mipmap detail bias|
Thanks to the following individuals for their research or contributions to this topic:
- gbMichelle (Discovering that base maps do not tile)
- Kavawuvi (Invader tag definitions)
- MosesOfEgypt (Tag structure research)