I made a jam game with compatibility renderer to make it playable on web, but now that the jam has ended I want to develop game further with forward+ to gain access to volumetric fog etc. I knew that changing it was going to mess up the colors, but I don't know how to fix it.
The first one is the old version from compatibility (notice that the material colors are exactly those selected in the gradient).
https://forum.godotengine.org/t/how-to-minimize-the-visual-difference-between-rendering-backends/57945
I've read this thread and the solution there is to change light energy, but it doesn't work for me, the colors are still very pale. Setting the shader render mode to unshaded doesn't change anything.
Colors on Compatibility vs Forward+ renderer
shader_type spatial;
render_mode specular_disabled, diffuse_toon;
uniform sampler3D noise;
uniform sampler2D gradient;
varying vec3 world_position;
void vertex()
{
world_position = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz;
}
void fragment() {
METALLIC = 0.0;
ROUGHNESS = 0.5;
float amplitude = texture(noise, (normalize(world_position) + vec3(1,1,1)) * 0.5).x;
vec3 color = texture(gradient, vec2(amplitude, 0)).xyz;
ALBEDO = color;
}