I am curious and have therefore been looking at the Ubershader (the non-Rembrandt version) and have some questions.
Gamma correction
I might not have looked right, but I see no gamma correction taking place in the fragment shader. And is the textures assumed to be gamma corrected, IE. loaded with GL_RGBA?
If I would like to experiment with setting the textures to being GL_SRGB_ALPHA, do I change the <internal-format>normalized</internal-format> to something else, and what?
gl_color and no ambient or emissive contribution
If I leave ambient_correction at 0.0 there seems to be no ambient component computed, but I clearly see ambient light in Flightgear. Also there seem to be no emissive component computed, except for the lightmap. Does these come from gl_color? And gl_color is then the output from the fixed pipeline? So if that's true it means that the ubershader is really a mix between fixed pipeline and per pixel shading? Or am I misunderstanding this completely.
Getting materials
If I want to get the material values in the fragment shader, should I just get them from gl_FrontMaterial?
diffuseColor
Is diffuseColor in the fragment shader coming from the vertex shader, which I see does compute a diffuseColor?