Rokotallion Blast
Put your cards up in the air!
Almost Software Shading
A.S.S. for short.
I was wondering if there was a way to make the Hardware Renderer of SRB2 to look more like the software renderer, with the lower color palette look, plus the more elegant water. I'm sure a lot of people prefer the software renderer better based on what I said about it, had a charm to it. There's just one thing that the Hardware renderer has, and it's the models. I really love playing SRB2 with models included, giving it more of a Sega Saturn feel, but I just feel so frustrated having to deal with quite a bland shader (no shade to the people working hard on completing it, you guys are doing a fantastic job!). Since I used Windows 10, and in a desktop with built-in high definition colors, I couldn't convert SRB2 with a lower color palette. I had to deal with it for months and just moved on from it.
Then something caught my attention, Fickleheart made a shader pack full of wacky effects, which was made with GLSL Programming. One of those was the Posterize shader, which had an effect that seemed to lower the color palette of the game. Now I had absolutely NO CLUE on how to use GLSL, but I tried digging into the package file and modified a bunch of variables. I then ended up with this:
ORIGINAL SHADER
MODIFIED SHADER
ORIGINAL SHADER
MODIFIED SHADER
Shader Comparison (DEEP SEA):
https://www.youtube.com/watch?v=5hRGU-XTUvs
It's not perfect, but it kinda gets some job done.
While it's not as close to the Software rendering, it's at least closer than the original OpenGL shader, for me at least.
MODIFIED SHADER
ORIGINAL SHADER
MODIFIED SHADER
Shader Comparison (DEEP SEA):
https://www.youtube.com/watch?v=5hRGU-XTUvs
It's not perfect, but it kinda gets some job done.
While it's not as close to the Software rendering, it's at least closer than the original OpenGL shader, for me at least.
So then, I thought I was done, but something hit me. The water still looked pretty static, even with moving water from the original Hardware shader. And then I realized that the Software rendering had a sort of refraction effect on its water, making it look so dang drinkable. I wondered if I can try to emulate that.
So I tried, and I kinda did something, but it wasn't perfect.
I discovered that certain objects have different GLSL files attached to them. One of them was the water movement from the original hardware shader. In it was a code that seemed to instruct the water to wave at a certain pace. What I also realized was that its last 4 lines of code were the same from all of the floor and wall textures in the game.
I knew what I had to do, I snatched that code and ported it to the floor texture, here's what I got:
The whole floor was rippling like the water texture! This was a good start.
So now I wondered how I would exclusively apply that to areas that have water. So I thought, what if GLSL had a feature where you can apply certain effects to certain areas with a tint color like below the water surface in Deep Sea Zone? So I got to work and then... I had this:
The water surface is the only area affected from the rippling effect... kinda.
You see this method isn't perfect at ALL since what's affected by the rippling effect are the tinted colors from floors and walls.
An example of how this is an issue is in Arid Canyon Act 1, turns out the tunnels had very blue tinted colors, making them ripple even though they don't have water in them:
Now, there is a way to stop this, by only letting the ripple effect affect certain levels of blue tint, but this still doesn't fix water in mods. Some of the water surfaces are also affected by this fix, making them not ripple.
I can see why water surfaces don't have refractions yet, this is a pretty icky issue. But it was interesting attempting this. I'm pretty sure the team is figuring out how to add a refraction effect better than what my attempt did.
That's it, I wonder what you guys think about it, I don't even know if I should submit this or not.