Grünes Wasser beheben¶
Wasser wirkt in FlightGear oft grün. Das hat zwei getrennte Ursachen. overlay_einrichten.py behebt beide im Overlay. Der Beitrag dazu erklärt die Suche: Grünes Wasser in FlightGear.
Grüne Seen¶


Flaches Wasser mischt der Shader mit einer Bodenfarbe aus einer groben Weltkarte. Kleine Seen liegen dort offenbar auf Land, also grün. Binnengewässer nutzen Effects/water-inland.eff, und dort lässt sich eine feste Tiefe vorgeben:
<use_specified_water_shallowness type="int">1</use_specified_water_shallowness>
<water_shallowness type="float">0.3</water_shallowness>
Bei 0,3 fällt die Bodenfarbe ganz weg, die Helligkeit bleibt aber voll.
Grün bei tiefer Sonne¶


Das Licht berechnet der Shader je Farbkanal, und bei tiefer Sonne fällt Blau zuerst weg. Die Wasserfarbe 0,148 / 0,27 / 0,3 enthält kaum Rot. Multipliziert bleibt vor allem Grün. In Shaders/water-ALS-high.frag wird das Licht deshalb vor der Multiplikation neutraler:
float light_helligkeit = dot(ambient_light.rgb, vec3(0.3, 0.59, 0.11));
ambient_light.rgb = mix(ambient_light.rgb, vec3(light_helligkeit), 0.7);
Der Wert 0,7 ist der Anteil, mit 1,0 wäre das Licht auf dem Wasser ganz neutral. Mittags ändert sich sichtbar nichts, weil das Licht dort schon fast neutral ist.
Bemerkung
Der Patch gilt für den Shader water-ALS-high, den das Profil high-quality nutzt. Geprüft habe ich ihn in Standbildern. Abends wirkt das Wasser dadurch auch etwas weniger warm.