RailUnion.net


http://railunion.net/blog/index/index_u-28254_b-1483_r-739_sid-bb5f7618d836dedb205a2e15131f1aeb.html

Автор:  sciff [ 05.11.2012, 23:45 ]
Тема блога:  Шейдер TrainGlassWeatherEffects.fx

Перевод статьи http://www.christrains.com/ts2012_faq_weatherglass.html

Руководство по шейдеру 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 Видео от : www.youtube.com


Автор статьи: Крис Лонхёрст (Chris Longhurst)
Перевод: sciff



{ BLOG_REPLIES }

Автор:  supermax [ 09.11.2012, 10:53 ]

спасибо Ян за перевод, некоторым разработчикам локов это в будущем пригодится;) Ждём ещё от тебя обучалок)

Автор:  Skif [ 27.04.2015, 16:24 ]

В этой статье не учтен автором один очень важный момент - цвета нормали правильные только для отвесных стекол, расположенных вертикально. Есть подозрение, что для скошеных стекол нужно учитывать угол их наклона и запекать карты нормалей вручную.

Часовой пояс: UTC + 4 часа

Powered by phpBB © 2002, 2006 phpBB Group
www.phpbb.com

Blogs powered by User Blog Mod © EXreaction
www.lithiumstudios.org