Эффект дыма от Мэтта Старка

Попытаюсь объяснить, как я недавно сделал эффект дыма. С ним объект окружен аурой волнистых клубов. Вот, как это выглядит в действии:
Состоит эффект из частично прозрачной текстуры на билборде (кваде, который всегда поворачивается лицом к камере). Центр квада примерно совпадает с центром дракона, и квад достаточно большой, чтобы вместить дым.
- Capcom представила коллекционное издание Resident Evil Village стоимостью почти 140 тысяч рублей
- HITMAN III получит трассировку лучей не только на ПК, но и на PS5 и Xbox Series
- Microsoft отменила повышение цены на Xbox Live Gold, а также сообщила об изменениях касательно f2p-проектов
- Шейдер "эффект Матрицы"
- Обзор Hitman 3: Прощальное турне киллера
- По слухам, Capcom перезапустила разработку ремейка Resident Evil 4
- В Steam состоялся релиз фантастического экшена Orange Cast
- Resident Evil VILLAGE: итоги шоукейса
- Devolver Digital опровергли слух о появлении Fall Guys: Ultimate Knockout в сервисе Xbox Game Pass

Сначала я отрисовываю копию вида камеры, содержащую только силуэт дракона. Моя камера имеет черный фон и отображает только один слой сцены. В качестве альтернативы вы можете использовать буфер трафарета, но в Unity к нему сложно получить доступ после рендеринга сцены.

Затем я нахожу экранные координаты углов билборда, чтобы можно было сэмплировать соответствующую область текстуры.

Я блендирую эту область текстуры силуэта с существующей текстурой билборда. Это имитирует дым, который исходит из источника с постоянной скоростью и постепенно исчезает. Затем я искажаю текстуру билборда, используя векторы скорости, основанные на карте потока. Это текстура, где красные и зеленые значения цвета представляют x и y компоненты скорости. Я также добавляю постоянную скорость вверх. Такое искажение текстуры имитирует завихрения от восходящих вверх потоков воздуха.


Наконец, я использую текстуру в материале, нанесенном на билборд. Шейдер материала преобразует черный и белый в прозрачный и черный. Материал исчезает там, где находится близко к поверхности позади себя, поэтому вы не увидите отсечение сквозь дракона. Он также исчезает вблизи краев билборда, чтобы не обнаружить тот резкими переходами.
Вот и все! Я очень доволен тем, как выглядит этот эффект дыма и как мало он влияет на производительность. Можно создать более простую версию для чего-то вроде пылающего факела, где просто из текстуры читается силуэт, но в этом случае проще использовать флипбук текстуру.
Оригинал статьи: https://matt.stark.scot/2019/10/11/smoky-aura-effect.html