I’d like to share ENDrv, an experimental OpenGL 3.3 render device for Unreal Tournament 2004 v3374.
Normal Maps + Specular (UT3-style) — full Blinn-Phong shading with tangent-space normal maps read directly from the Detail slot of the UShader material. Takes into account the direction of each light source (up to 16). This works directly from inside the engine, not via post-processing.
BSP support is not yet working correctly (due to an issue with surface and static light source caching).
Bloom + DoF — multi-pass Bloom (4-level downscale/upsample pyramid). DoF reads the real depth buffer, chromatic aberration with vignette mask. Parameters are configured via UT2004.ini.
Some effects are triggered by various in-game events (e.g. taking damage or teleporting).
Why it's better than ReShade: ReShade is post-processing applied on top of the finished frame. ENDrv is embedded in the pipeline: normal maps and specular affect the lighting of each mesh/BSP, Bloom takes the glow from the shader slot (self-illumination), DoF reads the real distance from the player to objects on the map. No hooks — a proper driver. Bloom correctly working on standart maps w/o modyfing them.
Since I had no source code for the game (x64 version), development was done by reverse engineering the game's libraries, and some original maps have texture bugs.
The project was not created as a full-scale game modification — I was simply interested in integrating normal maps and post-effects into the engine, so the project has been brought to a minimally acceptable state and I definitely won't be fixing bugs in the original texture and emitter pipeline for now. I plan to improve (if at all possible) normals on BSP and add anti-aliasing.
ENDrv.dll
DM-Biohazard, DM-RisingSun maps ported from UT3 with normal maps & specular materials
Screenshots:
https://cdn.knightlab.com/libs/juxtapos ... 6f42328d7d
https://cdn.knightlab.com/libs/juxtapos ... 6f42328d7d
https://cdn.knightlab.com/libs/juxtapos ... 6f42328d7d





