Написал короткий
туториал, как сделать небо бесшовным и без "клякс Роршаха". Кстати может быть и трейнзерам пригодится, а то там это дело постоянное.
Текстуру надо сохранить в формате 32bit .TGA (без компрессии), переименовать в Clouds01.tga и поместить в диреткорию /Content симулятора ("родной" Clouds01.tga можно переименовать в Clouds01.bak например) - в OpenRails пока нет менеджера небес, и те, что включены в состав роутов, он тоже пока не понимает.
Потом ищем файл SkyShader.fx, находим в нём шейдер PSClouds и заменяем строчку, в которой вычисляется координата пикселя небесной сферы:
Код:
float2 TexCoord = float2(In.TexCoord.x * 4 + WindDisplacement.x * wind, In.TexCoord.y * 4 + WindDisplacement.y * wind);
На следующие строки:
Код:
int tile = 4;
float wind = 0.0;
float2 TexCoord = float2(In.TexCoord.x * tile + WindDisplacement.x * wind, In.TexCoord.y * tile + WindDisplacement.y * wind);
Теперь в игре будет штиль, и облака не будут бешено свистеть по небу, как в Trainz (что, кстати, благоприятно сказывается на производительности в том числе). Захотите включить ветер - измените переменную wind в диапазоне от 0.0 до 1.0.
Переменная tile отвечает за количество тайлов текстуры на небесной полусфере. Оптимальное значение - 4. При значении 1 облака получаются слишком уж "размазанными", а при 16 становятся заметны повторы.
Я вообще переписал весь шейдер:
Вот
пара готовых текстурок на всякий случай.