Оптимизация эффекта God Rays: метод Plarium Krasnodar

Когда нужно привлечь внимание пользователей к объекту или придать картинке атмосферность, в дело идет эффект God Rays. Как специалисты краснодарской студии Plarium использовали «божественные лучи» и получилось ли у них сохранить высокую производительность девайсов — читайте под катом.


Особенный визуальный эффект понадобился в связи с выходом масштабного обновления в Vikings: War of Clans. В игру были добавлены Шаманы — персонажи, контролируемые игроком, а также Духи — их NPC-враги. Когда Шаман уничтожает Духа, на Карте Мира (общем игровом поле) появляется новая локация с ресурсами — Пристанище Духа. Она должна не только выделяться на фоне остальных объектов, но и визуально отражать метафору победы добра над злом.

Для решения этих задач подошел эффект God Rays. Он состоит из переливающихся лучей и мерцающих частиц, которые вместе создают сияние вокруг объекта. Однако использовать оба компонента одновременно и сохранить производительность игры не представлялось возможным. Оставалось отказаться от одной из составляющих либо искать другой путь.

Специалисты Plarium Krasnodar оптимизировали эффект, отрисовав лучи и частицы за один draw call. Для этого выбрали текстуру с тремя каналами RGB, в которые предстояло упаковать весь контент.

Сначала нужно было создать эффект сияния: для этого поделили канал Red на две части и направили движение лучей в противоположные стороны. 

Чтобы достичь эффекта мягкого угасания лучей по краям, выбрали произвольные каналы Vertex Colors. Закрасили цвет канала Blue и канала Alpha и перемножили их значения в шейдере, сформировав маску (Vertex Mask). В результате добились необходимой сглаженной области.

Далее перемножили результат и значения канала Red и получили финальную форму лучей нужной динамики.

Чтобы добавить мерцающие частицы, сместили каналы Green и Blue с разной скоростью и перемножили их.

Для получения финального результата сложили частицы и лучи, затем умножили их на цвет.

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


799 0 850 11
2
2018-04-03
Круто!) Спасибо за рецепт !)
2018-04-08
отличная идея. Утащу в копилку.
RENDER.RU