Руководство по шейдеру TrainGlassWeatherEffects.fx
TrainGlassWeatherEffects.fx это шейдер, позволяющий создавать окна в кабине (и в пассажирском салоне — прим. sciff), которые собирают капли дождя при дождливой погоде в настройках сценария. Эффект дождевых капель создаётся движком игры, но Вам необходимо поместить ряд текстур в правильные слоты материала КУЖУ, чтобы всё это правильно работало.
Настройка материала КУЖУ в 3ds Max
Название материала 3ds Max должно быть weatherglass_x (где x равна числу от 1 до 8), тип материала должен быть Kuju Material, а название шейдера TrainGlassWeatherEffects.fx. Этот шейдер имеет четыре текстурных слота.
Значение параметра UV Channel в каждого слота должно быть равно 1.
Все аргументы UV должны быть равны 0.
ВАЖНО: несмотря на то, что в текстурах задействуется альфа, параметры Z-Buffer Mode и Transparency должны быть отключены (NONE).
Кликните по картинке, чтобы увидеть иллюстрацию написанного выше.
Требования к текстурам
TrainGlassWeatherEffects.fx требует 4 текстуры для корректной работы. Для игры их будет необходимо сконвертировать в формат .ACE, но перед экспортом в IGS они могут быть в практически любом формате.
Слот №1: 4-канальная (RGB+A) текстура для окна как такового. Это диффуз + альфа для окна. Вы можете поместить «очищенную» часть стекла в диффуз и альфа-канал, чтобы создать эффект, будто стеклоочиститель регулярно очищал грязь с окна.
Слот №2: dummy-текстура для активации игрового шейдера, отвечающего за эффект (псевдо) отражения. Это может быть любая текстура. Я использую 3-канальную текстуру dummy.ace. Но также я могу продублировать текстуру из первого слота — важно чтобы в слоте была хоть какая-то текстура. Она по-любому будет замещена движком игры.
Слот №3: 4-канальная текстура, которая определяет сторону, в которую направлено то или иное окно. Это позволяет игре понять как размазывать капли по стеклу при движении поезда. Важно также использовать альфа канал. Цвета, которые необходимо использовать в диффузе, показаны на иллюстрации ниже.
Слот №4: 4-канальная текстура где диффуз — это белый лист, а альфа-канал содержит чёрно-белый градиент для стеклоочистителей. Градиент должен начинаться с белого цвета (255,255,255) и плавно переходить в чёрный (0,0,0). Белая часть градиента соответствует «припаркованному» положению «дворника».
Настройка Blueprint editor
Эффект стеклоочистителей связан со внешними стеклоочистителями в конфиге энджина (engine). Анимация уже должна присутствовать, если Вы имеете работающие «дворники»; название анимации должно быть Wipers (заглавная «W» обязательна). Промотайте вниз до блока Wiper Pairs и добавьте запись (entry). Обе записи Slave to animation должны быть Wipers. Запись Texture ID должна содержать относительный путь к .ACE файлу текстуры из 4-го слота — текстура движения «дворников». Запись Normals Texture ID должна содержать относительный путь к .ACE файлу текстуры из 3-го слота — текстура, определяющая направление окон.
Конечный результат
Конечный результат на моём локомотиве NS2200. Заметьте, что размер капель зависит от разрешения текстур окон. В данном случае они все имеют размер 256*256. Если Вы используете текстуры 512*512, капли становятся меньше, но их количество увеличивается. Обратите внимание на то, что капли на боковом окне размазываются назад (против направления движения — прим. sciff), а те что на заднем окне, лишь медленно стекают вниз.
Видео от : www.youtube.com
Автор статьи: Крис Лонхёрст (Chris Longhurst)
Перевод: sciff