NOTE: At the moment not compatible with GZDoom versions newer than 1.9.1, but I'm trying to figure out a way to make it work in a way that's compatible with the Zandronum version (as in, not requiring double setup to support both sourceports' versions), which is likely impossible
Here's a Sonic The Fighters/Superhot style model lighting shader for Zandronum 3.0, GZDoom 1.8.6 to 1.9.1 (Which includes ZDoom32 and ZDoom LE). Thanks to Kevin over at learnopengles.com for his great help, without which I wouldn't have done this at all.
STF_Lighting_Shader_Zandro.zip
For usage, set up a brightmapped model as you normally would in GLDEFS and MODELDEFS, but set "map" to "shader/null.png" (included in the pk3 file) NOTE: If your brightmaps have any alpha translucency, that section of the brightmap will be interpreted as "needs flat shading" (This also completely discards RGB info the brightmap set in that pixel!). Use only black and white brightmaps if you need normal Zandronum/GZDoom behavior.
I recommend keeping the shader itself as a separate addon, for compatibility with future Zandronum versions. Since this overrides func_brightmap.fp, and GZDoom itself has already completely switched to using a different method for brightmaps (They are internally treated as materials, and old shaders replacing it won't work correctly) it's to be expected Zandronum will too, so please avoid making this an absolute requirement so people will be able to run your mod with newer Zandronum versions.
Spoiler: Features
-Gives your models in Zandronum a lot more contrast and a e s t h e t i c !
-Allows you to choose exactly which models/surfaces get affected by the lighting, and which ones don't!
-Does not sacrifice brightmap functionality!
Spoiler: Customization
You can also customize light direction by modifying the following line in shaders/glsl/func_brightmap.fp:
Where X is left/right (left is negative, right is positive) Y is up/down (negative up, positive down) and Z is depth (positive closer, negative further). Keep in mind that this doesn't work like a point light, but like a directional light.
Spoiler: Known bugs
-Zandronum will spit a shader compilation error with "pixelpos" and "xyz", these are false errors and can't be avoided, as far as I'm aware. The shader will still work fine.
-GPUs with Shader Model older than 4.0 may experience issues with light orientation (The lighting will appear to be "painted" into the model, and will rotate with it).
Screenshot of how it looks (might look nicer with higher poly models, or some with better triangle distribution):
STF_Lighting_Shader_Zandro.zip
You do not have the required permissions to view the files attached to this post.
Last edited by TDRR on Sat Apr 25, 2020 12:45 pm, edited 1 time in total.
Rayman The Hedgehog wrote:Woah nice! this would be useful for emulate volumetric shadows a la Jedi Outcast in GZDoom
If by volumetric shadows you mean those projected on the surfaces and not the models themselves, that's not what this does (and anyways that's impossible using only shaders with what little Zandronum and even modern GZDoom gives you with shaders), but GShadow: Resurrected makes something closer to projected shadows.
But you made me think, it's actually possible to mix both mods and use flattened, animated and full-black models for the shadows to closely emulate Sonic The Fighters visuals in Zandronum, like this: So maybe projected shadows aren't impossible, but they definitely can't be done with this shader.