ezquake-source icon indicating copy to clipboard operation
ezquake-source copied to clipboard

REQ: support for lit water (`-splitturb` in QBSP) [mapping]

Open inf1niti opened this issue 3 years ago • 4 comments

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: image image image

Impact on server or mods none.

inf1niti avatar Jan 28 '22 18:01 inf1niti

Can you supply an example .bsp file?

meag avatar Jan 28 '22 21:01 meag

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.

inf1niti avatar Jan 29 '22 06:01 inf1niti

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.

dsvensson avatar Aug 29 '22 10:08 dsvensson

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).

Shpoike avatar Aug 29 '22 15:08 Shpoike

Solved with PR #716

tcsabina avatar Dec 16 '22 13:12 tcsabina