Войти
ПрограммированиеФорумГрафика

[Unity] Как сделать материал для мерцающих панелей приборов, индикаторов и т.д.? (2 стр)

Страницы: 1 2
#15
23:59, 8 мар. 2019

Красивые огоньки в промышленных масштабах я давно сделал, просто
настроив маски в канале эмиссии в стандартном металлик-шейдере
и настроив стандартный эффект bloom в профиле постобработки кадра.

+ Показать

<перфекционист>
Но никак не могу придумать как заставить огоньки хаотично мигать...
</перфекционист>

В игре местами будет очень много объектов со светящимися материалами,
поэтому, как я писал изначально, не хотелось бы весить скрипты двигающие
текстуру в материале на каждый такой объект, это как то совсем,
не рационально, с учётом того, что объектов будут сотни. Где то что то
должно мигать, где то нет... Никак не могу придумать простой системы,
которая поможет решить эту задачу...


#16
(Правка: 12:31) 12:27, 9 мар. 2019

Без собственных шейдеров не обойтись. Но ничего там сложного нет. Можно и руками написать и в нодовом редакторе сделать - один гхыр.
Самое простое - пустить по мировым координатам текстуру шума.

#17
12:47, 9 мар. 2019

marggob
Я, к сожалению, не знаю шейдерных языков, а вот шум в канале albedo - это, на данный момент, основное направление.

----

Всё, пока писал вам комментарий, придумал как сделать хаотичное мерцание части индикаторов, без кастомных шейдеров. Один материал на все цвета: синий, красный, зелёный, жёлтый. Одна текстура-маска, обеспечивающая мерцание, или периодичное мигание, или что угодно. Один C#-скрипт.

Всем спасибо за советы!
Как будет готово, выложу пояснения по решению этой задачи.

#18
(Правка: 28 мар. 2019, 5:17) 6:54, 27 мар. 2019

Для удобства сделал скрипт, который управляет огоньками на меше:

2019-03-27_064212 | [Unity] Как сделать материал для мерцающих панелей приборов, индикаторов и т.д.?

Стандартный шейдер, используется канал эмиссии.
Скрипт имеет три режима работы:
1. Просто заданный цвет, с заданной интенсивностью
2. Мерцание при помощи вот такой текстуры шума, которой задаются случайные параметры смещения и масштаба:

Light_FlickerMap | [Unity] Как сделать материал для мерцающих панелей приборов, индикаторов и т.д.?

3. Мерцание при помощи циклического выключения цвета.

Все временные задержки настраиваются количеством фреймов.
Все лампочки на объекте находятся за поверхностью объекта на отдельном полигоне, или группе полигонов. Выглядит бодро:

Скриншот 27-03-2019 070001 | [Unity] Как сделать материал для мерцающих панелей приборов, индикаторов и т.д.?

p.s.
Правильно я решил довести до ума скрипт, унифицировать все операции и сделать удобный интерфейс - работать с большим количеством объектов удобно, хотя наводить красоту в инспекторе замарочено и сильно не углубляюсь на такой простой задаче.

Страницы: 1 2
ПрограммированиеФорумГрафика