Как можно реализовать эффект попадания по щиту космического корабля (Unity3D)?

Необходимо написать эффект, как на видео (1:30-1:37):
www.youtube.com/watch?v=sIGWgVLrCNk

Скорее всего большинство будет за шейдер. С серьезными шейдерами не имел дела, подскажите в таком случае необходимые референсы, подходы. Заранее благодарен
  • Вопрос задан
  • 7478 просмотров
Решения вопроса 1
AxisPod
@AxisPod
Не знаю как в юнити, но по идее в самом простом случае нетекстурированный элипсоид и проецирование текстур, чистым шейдером нет смысла подобный эффект делать. А вот на проецируемую текстурку уже можно накладывать. Используя вектор выстрела и его силу можно определить радиус/диаметр текстуры и её уже проецировать на элипсоид. В общем поискать надо в этом направдлении, сам такого не делал.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AlexanderG
@AlexanderG
Можно рисовать на CPU альфа-текстуру для эффекта и в каждом кадре передавать в шейдер щита, в непрозрачных местах рисовать эффект. Правда, неизвестно, насколько это будет быстро.

Можно кодировать информацию об эффекте в вершинах, во 2, 3 и так далее UV-канале.

Можно передавать в шейдер массив/матрицу/текстуру с перечислением всех мест попаданий в щит, преобразованных в локальные (двумерные) координаты щита. В этом случае для каждого фрагмента (пикселя) щита интенсивность эффекта будет определяться как сумма зависимых от расстояния (по поверхности) до точки попадания слагаемых. Грубо говоря, чем ближе к точке попадания, тем ярче, и это складывается для всех попаданий.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы