ezquake-source
ezquake-source copied to clipboard
REQ: support for lit water (`-splitturb` in QBSP) [mapping]
Is your feature request related to a problem? Please describe.
Other quake engines have recently moved to add support for -splitturb in QBSP, which allows for lighting in the map to effect water textures so they're not rendered as fullbrights. This provides more natural looking lighting and enhances the visuals of maps.
Describe the solution you'd like Would be nice for EZQuake to support this feature and align with the rendering support that's happening in other engines.
Additional context
implementation in QSS
comparative screenshots:

Impact on server or mods none.
Can you supply an example .bsp file?
This flag was used when compiling the BSP I linked to in #629
It's an undocumented sub-property of -splitspecial which is referenced on ericw's QBSP docs. However, -splitturb is preferred because the effect is generally not applicable/desirable to sky textures.
Additional context implementation in QSS
More examples: implementation in vQuake (+ some bug fixes in later commits) implementation in QS
Those engines differ a bit from ezQuake, so does not look like a super trivial port for someone not well versed in GL/ezQuake architecture.
lit water is not really any different from lit walls. only real difference is that they warp a bit when walls don't... engines also have a tendency to draw them as transparent too but that's a separate extension.
the one gotcha is when the qbsp supports -splitturb but the light util didn't. water surfaces without TEX_SPECIAL but also no lightmaps should thus be considered fullbright instead of fullblack, and supporting light utils should guarantee at least one lightmap(even if its entirely black).
should otherwise be fairly straight forward, just adapting ezquake's existing code a bit...
also, lit lava?... there's something deeply wrong about that. those ones should always be fullbright what with the whole emitting-light thing that your average boiling lava does (until it cools enough to form a darkened skin that quake does not show, which wouldn't be orange/red anyway).
Solved with PR #716