shader_transparent_water
🚧 This incomplete article needs help! Please submit tips and info by pull requests or issues or contacting a maintainer.
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_transparent_chicago which allows for more varied animation and map blending.
Base maps
Water shaders do not tile their base maps. Instead, the edges of the texture are "smeared" infinitely.
Known issues
Ripple maps are not rendered correctly in PC retail and Custom Edition compared to 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 MCC.
Structure and fields
This tag inherits fields from shader which are not shown here. See the parent's page for more information. The following information is unique to the shader_transparent_water tag.
Field | Type | Comments | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
water flags | bitfield(16) |
||||||||||||||||
|
|||||||||||||||||
pad(2) |
|||||||||||||||||
pad(32) |
|||||||||||||||||
base map | |||||||||||||||||
pad(16) |
|||||||||||||||||
view perpendicular brightness | Fraction: f32 |
|
|||||||||||||||
view perpendicular tint color | |
||||||||||||||||
view parallel brightness | Fraction: f32 |
|
|||||||||||||||
view parallel tint color | |
||||||||||||||||
pad(16) |
|||||||||||||||||
reflection map | |||||||||||||||||
pad(16) |
|||||||||||||||||
ripple animation angle | Angle: f32 |
||||||||||||||||
ripple animation velocity | f32 |
||||||||||||||||
ripple scale | f32 |
|
|||||||||||||||
ripple maps | |||||||||||||||||
ripple mipmap levels | u16 |
||||||||||||||||
pad(2) |
|||||||||||||||||
ripple mipmap fade factor | Fraction: f32 |
|
|||||||||||||||
ripple mipmap detail bias | f32 |
||||||||||||||||
pad(64) |
|||||||||||||||||
ripples | Block? |
|
|||||||||||||||
pad(16) |
This information was partially generated using Invader tag definitions.
Acknowledgements
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)